prime.rb
puts "xを素因数分解します。"
while true
print " x > "
x = gets.to_i #上限
if x >= 1
break
end
end
a = []
for i in 2..x
a << i
end
k = 0
while k < Math.sqrt(x)
i = 1
while i < a.length
if a[i] % a[k] == 0 && i != k
a.delete_at i
end
i += 1
end
k += 1
end
print x.to_s + " = 1"
for i in 0..(a.length-1)
count = 0
while true
if (x % a[i]) == 0
x = x / a[i]
count += 1
next
end
if count > 1
print " * " + a[i].to_s + "^" + count.to_s
elsif count == 1
print " * " + a[i].to_s
end
break
end
end
前回投稿の篩を使っただけ