Python:检查素数和增量

时间:2017-01-15 13:16:20

标签: python

我有5天的练习,每天一小时,如果我的问题非常低,那么请原谅。没有事先编码exp

我对以下代码的目标是 1-检查输入的数字是否为素数 2-如果不打印下一个最大的素数

def primetest (num):       # check if number is a prime
    for c in range (2, num):
     if num % c == 0:
      repeattest (num)     #not prime? increment number
     else :
      print (num,"is a prime number")
      break       

def repeattest (num):     # check prime if not increment number by 1      
 for z in range (2, num):
   num = num+1
   primetest (num)
   if num % z == 0:
      num = num+1
   else:
      print ("Next Prime:", num+1)
      break

num = int (input ("enter a number:"))     # main code: 
for y in range (2, num):
  if num % y == 0:
        repeattest (num)
  else:
      print (num,"is a prime number")
      break

我认为逻辑很好,但不确定为什么我没有得到输出。请帮忙

1 个答案:

答案 0 :(得分:0)

你做的方式有很多错误效率不高。通过对您的代码进行一些修改,我使它变得更加简单。阅读评论以了解:

def primetest (num):       # check if number is a prime
    return(all(num % i for i in range(2, num)))

num = int (input ("enter a number:"))     # main code:

while True: #loop continues until prime number found(True)
    if primetest(num):
        print(num,"is a prime number.")
        break #(stops loop if prime found)
    else: #otherwise repeat by incrementing to the next num until found
        print(num,"is not a prime number.")
        num += 1

输出:

enter a number:45
45 is not a prime number.
46 is not a prime number.
47 is a prime number.
相关问题