鱼C论坛

 找回密码
 立即注册
查看: 2032|回复: 12

第49课时最后一题

[复制链接]
发表于 2018-8-20 18:05:46 | 显示全部楼层 |阅读模式

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

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

x
import math

def is_prime(number):
    if number > 1:
        if number == 2:
            return True
        if number % 2 == 0:
            return False
        for current in range(3, int(math.sqrt(number) + 1), 2):
            if number % current == 0:
                return False
        return True
    return False

def get_primes(number):
    while True:
        if is_prime(number):
            yield number
        number += 1

def solve():
    total = 2
    for next_prime in get_primes(3):
        if next_prime < 2000000:
            total += next_prime
        else:
            print(total)
            return

if __name__ == '__main__':
    solve()
##### for current in range(3, int(math.sqrt(number) + 1), 2):##这段看不明白啊 为啥要开方后加1呢 步径还设成2,求大神解答一下啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-20 18:48:51 | 显示全部楼层
万一number是平方数,,int(math.sqrt(number))+1才能取到
记住range上限的问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-21 01:05:57 From FishC Mobile | 显示全部楼层
那为啥把步长设置成2呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 07:16:16 | 显示全部楼层
刘超峰 发表于 2018-8-21 01:05
那为啥把步长设置成2呢

偶数除了2都不是质数,把2判断完了,只管奇数就得了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-21 20:41:00 | 显示全部楼层
塔利班 发表于 2018-8-21 07:16
偶数除了2都不是质数,把2判断完了,只管奇数就得了

那number = 3 呢 那在for current in range(3, int(math.sqrt(number) + 1), 2)里怎么判断True和False??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 20:44:42 | 显示全部楼层
不是说了吗,偶数2判断完了只在奇数里找质数了,3的时候range范围是空,循环没执行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 20:48:54 From FishC Mobile | 显示全部楼层
他应该指的那个除数吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 20:57:13 | 显示全部楼层
chongchuigu 发表于 2018-8-21 20:48
他应该指的那个除数吧

number=3
range变成range(3,2,2)这是个空范围,直接到下一步return True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-21 20:59:56 | 显示全部楼层
塔利班 发表于 2018-8-21 20:44
不是说了吗,偶数2判断完了只在奇数里找质数了,3的时候range范围是空,循环没执行

谢谢啦 知道啦 那if __name__ == '__main__':是干哈的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 21:08:22 | 显示全部楼层
刘超峰 发表于 2018-8-21 20:59
谢谢啦 知道啦 那if __name__ == '__main__':是干哈的啊

是此模块单独运行时才运行solve()
被其他模块import时,__name__!='__main__'
这小甲鱼课程里有
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-21 21:53:40 | 显示全部楼层
塔利班 发表于 2018-8-21 21:08
是此模块单独运行时才运行solve()
被其他模块import时,__name__!='__main__'
这小甲鱼课程里有

那最后是怎么得出结果的呢,我跑了一下程序没有返回结果啊
number我要传数字就去吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-21 21:56:06 | 显示全部楼层
刘超峰 发表于 2018-8-21 21:53
那最后是怎么得出结果的呢,我跑了一下程序没有返回结果啊
number我要传数字就去吗

好啦 是电脑反应慢了 要等一会才有结果 哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-7 14:14:47 | 显示全部楼层
插个眼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 21:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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