Tac 发表于 2020-11-23 13:51:51

求大佬帮忙 质数问题

对于标准输入中的每一行,给定一个正整数,您需要输出不超过标准输出的质数的个数。
当输入文本为空时,程序必须完成。
在这个问题中,请不要使用(Eratosthenes’s)筛算法。

sunrise085 发表于 2020-11-23 14:26:00

本帖最后由 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)

Tac 发表于 2020-11-23 14:32:25

sunrise085 发表于 2020-11-23 14:26


为什么输入1000输出显示只有4个质数呢?

sunrise085 发表于 2020-11-23 14:38:14

Tac 发表于 2020-11-23 14:32
为什么输入1000输出显示只有4个质数呢?

不好意思,手快了。第10行写错了,应该把n改成i
我现在已经修改了

Tac 发表于 2020-11-23 14:41:26

sunrise085 发表于 2020-11-23 14:38
不好意思,手快了。第10行写错了,应该把n改成i
我现在已经修改了

多谢多谢

Tac 发表于 2020-11-23 15:12:41

sunrise085 发表于 2020-11-23 14:26


可以改一下成允许输入为
2
10
100
1000
这种形式的吗?
因为我输入的时候好像只能一个数一个数这样输入不能跨行输入
页: [1]
查看完整版本: 求大佬帮忙 质数问题