我在打印双生子时遇到问题。在
当我第一次编写代码时,我得到的第一个数是素数,而不是第二个数。在
所以我在printTwinPrimeNumbers(twinPrime)函数中使用质数检查器。但是现在它说num2没有定义。在
我该怎么让它同时检查第一个和第二个号码呢。在
# determine if numbers are prime
def Prime(num1):
divisor = 2
while divisor <= num1 / 2:
if num1 % divisor == 0:
return False # number is not a prime
divisor += 1
return True # number is prime
def printTwinPrimeNumbers(twinPrime):
NUMBER_OF_PRIMES = 50
NUMBER_OF_PRIMES_PER_LINE = 1
num1 = 3 # number to be tested starting point
count = 0
for i in range(0, 1001):
if Prime(num1):
def prime2(num2):
num2 = num1 + 2
count += 1
while divisor <= num2 / 2:
if num2 % divisor == 0:
return False # number is not a prime
divisor += 1
return True # number is prime
if prime2(num2):
print("(", num1, ",", num2, ")", end = '')
# makes sure only one is printed per line
if count % NUMBER_OF_PRIMES_PER_LINE == 0:
# Print the number and advance to the new line
print()
num1 += 1
def main():
print("The Twin Prime Numbers are: ")
printTwinPrimeNumbers(50)
main()# calls main function
变量}。在
num2
是未定义的,因为它只在prime2
中定义,但您将其用作prime2
的参数。而且,prime2
根本不需要,因为它与Prime
相同,但有不同的参数。只需将Prime
用于num1
和{而且,这是相当浪费的,因为你要测试每个数的素性两次。相反,只需创建一个包含该范围内所有质数的列表,并检查每个质数的“孪生”是否也在该列表中。在
^{pr2}$相关问题 更多 >
编程相关推荐