【发布时间】:2018-10-07 23:46:09
【问题描述】:
我一直在尝试制作一个看起来像这样的“质数检查器”:
请输入一个数字:7
因素是:
1
7
7 是质数
再试一次?是的
输入一个数字:6
因素是:
1
2
3
6
6 不是质数
它有6个因素
我被困在最后一部分,它计算非质数有多少因子(在下面的代码中列为“num_factors”)。谢谢! *为清晰起见进行了编辑。
def main():
num = int(input("Please enter an integer between 2 and 5,000: "))
def list_factors(x):
print("The factors of your number are: ")
for i in range(1, x + 1):
if x % i == 0:
print(i)
list_factors(num)
def is_prime(num):
if num>1:
for i in range(2,num):
if (num%i) == 0:
print(num, "is NOT a prime number")
break
else:
print(num, "is a prime number")
else:
print(num, "is not a prime number")
is_prime(num)
def num_factors(x):
for i in range(1, x + 1):
if x % i == 0:
list = []
print("It has", len(list), "factors")
num_factors(x)
print()
again=input("Try again? (y/n): ")
if again == "y":
print()
main()
else:
print("Bye!")
if __name__ == "__main__":
main()
【问题讨论】:
-
我认为你的第一个例子应该说 7 是一个素数。
-
创建返回结果的函数。从函数外部打印结果。一旦你解决了这个问题,剩下的就很容易了。