python 50讲生成器
import mathdef 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循环有些看不明白 这里不是判断素数的吗? 为什么range的第二个参数是number的平方根啊?还有if返回的False也看不懂,求详解{:10_266:} 判断素数三种方法:
0.range(2, n)
1.range(2, math.sqrt(n)+1)
2.range(2, n//2+1)
后两种比第一种少了循环次数
如果不是素数返回0呗 巴巴鲁 发表于 2020-12-6 10:36
判断素数三种方法:
0.range(2, n)
1.range(2, math.sqrt(n)+1)
可我理解不了第二种方法在这题的意思{:10_266:}
wuyanzulqq 发表于 2020-12-6 10:46
可我理解不了第二种方法在这题的意思
就是判断一个数是否为素数啊
和第一种方法差不多,只不过高效一些(循环次数变少)
和range(2, n)本质上是一样的
哪不理解? 巴巴鲁 发表于 2020-12-6 10:53
就是判断一个数是否为素数啊
和第一种方法差不多,只不过高效一些(循环次数变少)
和range(2, n)本质 ...
大佬能不能写下流程标在代码旁啊。。。{:10_250:}
拜托拜托 巴巴鲁 发表于 2020-12-6 10:53
就是判断一个数是否为素数啊
和第一种方法差不多,只不过高效一些(循环次数变少)
和range(2, n)本质 ...
这个作业把我绕晕了 巴巴鲁 发表于 2020-12-6 10:53
就是判断一个数是否为素数啊
和第一种方法差不多,只不过高效一些(循环次数变少)
和range(2, n)本质 ...
大佬如果循环到100的话 100的平方根10 那么range(3,11,2) 那current就是3,5,7,9。100%3,7,9都有余数 而%5 ==0 所以是不是说current中哪怕有一个被number整除 也会直接False 而get_primes while循环 number +=1 (111,112,113......)判断下一个数是不是素数 如果是就加入到total里
大佬我的理解对吗? 不对的请纠正哈{:5_109:}
还有一个小问题 if __name__ == '__main__' 在这是什么意思{:10_299:} wuyanzulqq 发表于 2020-12-6 11:44
大佬如果循环到100的话 100的平方根10 那么range(3,11,2) 那current就是3,5,7,9。100%3,7,9都有余数 ...
嗯,你理解是对的,我才只学到文件那里{:10_319:}
https://blog.csdn.net/zhusongziye/article/details/79505803?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-2.control 本帖最后由 大宝陈 于 2020-12-6 12:34 编辑
还有一个小问题 if __name__ == '__main__' 在这是什么意思?
if __name__ == '__main__' 在这是如果直接运行这个程序(不是由其它程序导入运行的话)就执行下面的语句。
我已经学到面向对象编程了。 哦哦
感谢分享! hornwong 发表于 2020-12-8 11:55
感谢分享!
(⊙o⊙)… 感谢楼主,这个我也不懂 试试看,有没有鱼币 每人两次,多谢了
页:
[1]