鱼C论坛

 找回密码
 立即注册
查看: 1463|回复: 5

[已解决]求大佬帮忙 质数问题

[复制链接]
发表于 2020-11-23 13:51:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
对于标准输入中的每一行,给定一个正整数,您需要输出不超过标准输出的质数的个数。
当输入文本为空时,程序必须完成。
在这个问题中,请不要使用(Eratosthenes’s)筛算法。
最佳答案
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-23 14:32:25 | 显示全部楼层

为什么输入1000输出显示只有4个质数呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


不好意思,手快了。第10行写错了,应该把n改成i
我现在已经修改了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-23 14:41:26 | 显示全部楼层
sunrise085 发表于 2020-11-23 14:38
不好意思,手快了。第10行写错了,应该把n改成i
我现在已经修改了

多谢多谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-23 15:12:41 | 显示全部楼层

可以改一下成允许输入为
2
10
100
1000
这种形式的吗?
因为我输入的时候好像只能一个数一个数这样输入不能跨行输入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-13 13:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表