显示用户提示的数字的因数
Displaying factors of a number prompted by a user
我正在尝试创建一个程序,提示用户输入一个数字,然后检查它是否是质数。如果它不是质数,我也试图让它显示因子。
我成功地创建了程序的第一部分,但我在最后一部分遇到困难。
def prime(n)
is_prime = true
for i in 2..n-1
if n % i == 0
is_prime = false
end
end
if is_prime
puts "#{n} is a prime number"
else
puts "#{n} is not a prime number =>"
end
end
prime(n)
在这一步:
puts "#{n} is not a prime number =>"
我想合并因子的显示,假设数字是8
8 不是质数 => 1, 2, 4, 8
如有任何帮助或建议,我们将不胜感激!
试试这个代码:
def factors(n)
(1..n/2).select{|e| (n%e).zero?}.push(n)
end
因素(8)=> [1,2,4,8]
您的最后一步将如下所示:
puts "#{n} is not a prime number =>#{factors(n).join(',')}"
顺便说一句:为了检查数字是否为质数,建议使用 Sieve of Eratosthenes。
我正在尝试创建一个程序,提示用户输入一个数字,然后检查它是否是质数。如果它不是质数,我也试图让它显示因子。
我成功地创建了程序的第一部分,但我在最后一部分遇到困难。
def prime(n)
is_prime = true
for i in 2..n-1
if n % i == 0
is_prime = false
end
end
if is_prime
puts "#{n} is a prime number"
else
puts "#{n} is not a prime number =>"
end
end
prime(n)
在这一步:
puts "#{n} is not a prime number =>"
我想合并因子的显示,假设数字是8
8 不是质数 => 1, 2, 4, 8
如有任何帮助或建议,我们将不胜感激!
试试这个代码:
def factors(n)
(1..n/2).select{|e| (n%e).zero?}.push(n)
end
因素(8)=> [1,2,4,8]
您的最后一步将如下所示:
puts "#{n} is not a prime number =>#{factors(n).join(',')}"
顺便说一句:为了检查数字是否为质数,建议使用 Sieve of Eratosthenes。