Python:检查prime和incremen

2024-10-01 15:36:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有整整5天的练习,每天一小时,所以如果我的问题很低,请原谅。无先前编码经验

以下代码的目标是 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

我认为逻辑是好的,但不知道为什么我没有得到一个输出。请帮忙


Tags: innumberforifisdefrangeelse
1条回答
网友
1楼 · 发布于 2024-10-01 15:36:12

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

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.

相关问题 更多 >

    热门问题