我的用于查找数字是否为素数的代码有什么问题[重复]

问题描述 投票:0回答:2

N = int(input())
flag = False
if N <= 2:
  print('no')
for j in range(2, int(N**0.5)+1):
  if N%j == 0:
    flag = True
if flag == False:
  print('yes')
else:
  print('no')

我看到解决方案的每个地方的逻辑都是相同的,但不知何故 codechef 显示这是一个错误的答案,因为我没有 codechef 的专业订阅,我看不到失败的案例。

python math numbers primes
2个回答
2
投票

对于 2 以上的任何数字,此代码都是正确的(尽管可以更有效地完成),但请查看边缘情况 - 此脚本给出的结果是 1 和 0 都是质数。


0
投票
N = int(input())
flag = False
for j in range(2, N):
    if N % j == 0:
        flag = True
if not flag and N > 1:  # Important: 0 and 1 are not prime numbers
    print('yes')
else:
    print('no')
© www.soinside.com 2019 - 2024. All rights reserved.