python认为2不是质数

2024-06-23 18:36:52 发布

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

我为prim数字编写了一个python脚本tho,用于检查数字并给出结果。问题是python认为2不是质数我该怎么办? 有什么办法解决这个问题吗?thx

    def prime(n):
    aval = True
    for i in range(2,n):
        if n% i == 0:
            aval = False
        else:
            return aval

for j in range(1,3):
    print(j,prime(j))

这就是结果: 1无 2无


Tags: in脚本trueforifdefrange数字
2条回答

一个非常简单的方法就是这样做

from math import sqrt
from itertools import count, islice

def is_prime(n):
    return n > 1 and all(n % i for i in islice(count(2), int(sqrt(n)-1)))

看起来您的逻辑有点混乱,但很容易解开:

def prime(n):
  for i in range(2,n):
    if n % i == 0:
      return False
  return True

现在,如果检测到未命中,则会中断循环

相关问题 更多 >

    热门问题