我创建了素数测试算法,但是它不起作用。
本质上,这些是程序执行的步骤:
for loop
取用户上下限之间的每个数字,然后检查这些数字中的每个数字是否可被2与用户上限之间的任何数字整除lower = int(input("Lower Bound: "))
upper = int(input("Upper Bound: "))
print ("Primes between " + str(lower) + " and " + str(upper) + ": ")
primes = []
for i in range (lower, upper):
for num in range (2, upper/2):
if i % num == 0:
print (str(i-(lower-1)) + ". " + str(i) + " = No")
break
else:
primes.append(i)
print(primes)
但是,无论数字是否为质数,该函数始终输出no,但我不知道为什么!
答案 0 :(得分:1)
解决了。首先,我进行了楼层除法//
运算符,因此它返回一个整数。另外,我还提出了一个条件,即除数不能被自身除。因为否则4将是4的质数。
lower = int(input("Lower Bound: "))
upper = int(input("Upper Bound: "))
print ("Primes between " + str(lower) + " and " + str(upper) + ": ")
primes = []
for i in range (lower, upper):
for num in range (2, upper//2):
if i % num == 0 and num != i: # modification here
print (str(i-(lower-1)) + ". " + str(i) + " = No")
break
else:
primes.append(i)
print(primes)
Out[1]: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43]