【发布时间】:2015-04-05 17:32:27
【问题描述】:
该程序用于计算素数并将它们保存到文件中。保存功能尚未正确编程,请忽略。该程序通过将奇数与先前的素数进行比较来工作。如果它不是这些数字的倍数,那么它就是质数。理论上它应该可以工作,但是当我尝试将数字除以列表中的素数时,它会返回错误消息:
Traceback(最近一次调用最后一次): 文件“C:\Users\Archie\Desktop\maths python\prime\prime v1.3.py”,第 51 行,在 primeCheck(数量) primeCheck 中的文件“C:\Users\Archie\Desktop\maths python\prime\prime v1.3.py”,第 8 行 检查 = int(num) / listImport TypeError: 不支持的操作数类型 /: 'int' 和 'list'
您能否建议我如何解决此问题或提出不同的解决方法。
def primeCheck(num):
divider = 2
refresh = 0
firstPoint = 0
secondPoint = 1
while refresh == 0:
listImport = primeList[firstPoint:secondPoint]
check = int(num) / listImport
if (check.is_integer()):
refresh = 1
else:
firstPoint = firstPoint + 1
secondPoint = secondPoint + 1
if secondPoint > len(primeList):
file.write(str(num) + "\n")
print(str(num))
global x
x = x + 1
refresh = 1
primeList.append
\\ if (int(num)/divider).is_integer():
\\ if divider == num:
\\ file.write(str(num) + "\n")
\\ print(str(num))
\\ global x
\\ x = x + 1
\\ refresh = 1
\\ else:
\\ refresh = 1
\\ else:
\\ divider = divider + 1
global file
repeat = input("How many numbers do you want to add to the existing file?\n")
file = open("Prime results v1.3.txt", "r")
global x
x = 1
num = file.readline()
file.close()
global file
file = open("Prime results v1.3.txt", "a")
num = int(num)
global primeList
primeList = [2]
while x <= int(repeat):
primeCheck(num)
num = num + 2
file.close()
双斜线区域是我之前尝试过的一种方法,效果很好,但是这种方法更有效。
【问题讨论】:
标签: python windows-7 primes divide