gpt4 book ai didi

python - 在python中找到前N个素数

转载 作者:太空狗 更新时间:2023-10-29 17:51:43 25 4
gpt4 key购买 nike

我是编程界的新手。我只是用 python 编写这段代码来生成 N 个素数。用户应输入 N 的值,即要打印的素数总数。我已经编写了这段代码,但它没有抛出所需的输出。相反,它打印素数直到第 N 个数。

例如:用户输入值 N = 7。

期望的输出:2、3、5、7、11、13、19

实际输出:2、3、5、7

请指教。

i = 1
x = int(input("Enter the number:"))
for k in range(1, x+1):
c = 0
for j in range(1, i+1):
a = i % j
if a == 0:
c = c + 1

if c == 2:
print(i)
else:
k = k - 1

i = i + 1

最佳答案

使用正则表达式:)

#!/usr/bin/python

import re, sys


def isPrime(n):
# see http://www.noulakaz.net/weblog/2007/03/18/a-regular-expression-to-check-for-prime-numbers/
return re.match(r'^1?$|^(11+?)\1+$', '1' * n) == None


N = int(sys.argv[1]) # number of primes wanted (from command-line)
M = 100 # upper-bound of search space
l = list() # result list

while len(l) < N:
l += filter(isPrime, range(M - 100, M)) # append prime element of [M - 100, M] to l
M += 100 # increment upper-bound

print l[:N] # print result list limited to N elements

关于python - 在python中找到前N个素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1628949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com