鱼C论坛

 找回密码
 立即注册
123
返回列表 发新帖
楼主: zltzlt

[已解决]Python:每日一题 293

[复制链接]
发表于 2019-12-25 23:07:06 | 显示全部楼层
Stubborn 发表于 2019-12-25 22:48
上面的在找为True的索引,没有记录个数

上面的好理解点,下面的我知道是为了去偶数,只是在想range(i//2,n//2,i)后面的i为什么不地板除的原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-25 23:38:33 | 显示全部楼层
阴阳神万物主 发表于 2019-12-25 00:00
反驳:当 N 取值为 0 时 , 6N+2 = 2 ,6N+3 = 3 ,都是质数。
你描述的语言中 “必然” 用得不对,如果 ...

需要排除2,3之后都是符合这个规律的。所以上来就可以判断是不是2,3。在计算机里判断要比计算快的多。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-26 00:53:47 | 显示全部楼层
fan1993423 发表于 2019-12-25 23:07
上面的好理解点,下面的我知道是为了去偶数,只是在想range(i//2,n//2,i)后面的i为什么不地板除的原因

这个i是步长呀~ 就和上面的一样,去掉i的倍数,不是合数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-10 06:03:21 | 显示全部楼层
def f293(n):
    count=0
    n=n-1
    while n:
        if is_prime(n):
            count+=1
        n=n-1
    return count
              
def is_prime(n):
    if n==1:
        return False
    elif n==2 or n==3:
        return True
    elif n>3:
        for i in range(2,n//2+1):
            if n%i==0:
                return False
        return True

print(f293(20))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-10 20:19:30 | 显示全部楼层
import math
def prime_num(n):
    pr = 1
    for i in range(3, n, 2):
        for j in range(2, int(math.sqrt(i))+1):
            if not i % j:
                break
        else:
            pr += 1
    return pr
while True:
    n = int(input('enter:'))
    if n < 0:
        continue
    else:
        print(prime_num(n))
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-25 14:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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