求大佬帮忙 质数问题
对于标准输入中的每一行,给定一个正整数,您需要输出不超过标准输出的质数的个数。当输入文本为空时,程序必须完成。
在这个问题中,请不要使用(Eratosthenes’s)筛算法。 本帖最后由 sunrise085 于 2020-11-23 14:38 编辑
import math
def prime(n):
k=0
if n<=1:
return k
if n%2==0:
n-=1
for i in range(n,0,-2):
for j in range(2,int(math.sqrt(i))+1):
if i%j == 0:
break
else:
k+=1
return k
while True:
n=input()
if n=='':
break
n=int(n)
k=prime(n)
print(k) sunrise085 发表于 2020-11-23 14:26
为什么输入1000输出显示只有4个质数呢? Tac 发表于 2020-11-23 14:32
为什么输入1000输出显示只有4个质数呢?
不好意思,手快了。第10行写错了,应该把n改成i
我现在已经修改了 sunrise085 发表于 2020-11-23 14:38
不好意思,手快了。第10行写错了,应该把n改成i
我现在已经修改了
多谢多谢 sunrise085 发表于 2020-11-23 14:26
可以改一下成允许输入为
2
10
100
1000
这种形式的吗?
因为我输入的时候好像只能一个数一个数这样输入不能跨行输入
页:
[1]