python语言编程爱拉托斯散筛算法求一个数以内的所有素数

阅读: 评论:0

python语言编程爱拉托斯散筛算法求一个数以内的所有素数

python语言编程爱拉托斯散筛算法求一个数以内的所有素数

爱拉托斯散筛算法过程:编写一个能使用爱拉托斯散筛法求N以内的素数的程序
例如要计算100以内的素数
(1)找出sqrt(100)内是素数[2,3,5,7]
(2)去掉2的倍数值
(3)去掉3的倍数值
(4)去掉5的倍数值
(5)去掉7的倍数值
(6)删除1
图例如下:

代码实现如下:


import math
def Evidence(number):p=[2]q=[]for i in range(3,int(math.sqrt(number))+1):flag=0for j in range(2,i):if i%j==0:flag=1breakif flag==0:p.append(i)print(p)for k in range(2,number+1):q.append(k)for i in p:for j in q:if j % i == ve(j)for i in range(len(q)):p.append(q[i])print(p)if __name__ == "__main__":number = input()Evidence(int(number))

测试输入:120;
预期输出:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113]

测试输入:512;
预期输出:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509]

本文发布于:2024-02-05 03:02:09,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170722468262413.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:素数   数以   算法   语言   python
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23