素数及完全数的筛选

一、求取100以内的素数

由素数的概念可知,其只能被1和自身整除,也就是说,若该数为i,那么要想其为素数,小于该数且不能被整除的个数必须为i - 2个,因此有如下代码:

N = input("请输入一个整数,以判断求取范围:")
a =[]
for i in range(2,N+1):#对数进行遍历
    m = 0
    for j in range(1,i+1): #找因子
        if i % j == 0:
            continue
        else:
            m = m + 1
    if m == i -2: #当不能被整除的个数为i-2个时,为素数。
        a.append(i)
print(a)

结果如下:
[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]

二、求取1000以内的完全数

由完全数的概念可知,如果一个数的所有的真因子(即除了自身以外的)的和(即因子函数),恰好等于它本身,那么这个数就为完全数。因此求取一定范围的完全数也就是判断真因子之和与该数值的关系的过程。现在贴上代码:

num = input('请输入一个数字,以确定判断范围:')
a = []
for i in range(2,int(num)):
    m = []
    for j in range(1,i):
        if i % j == 0:
            m.append(j)
        print(m)
    b=0
    for n in m:
        b = b + n
    print(b)
    if b == i:
        a.append(i)
print(a) 

最终运行的结果显示,在1000以内,完全数有三个:6,28,496

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 对于每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意永不停息,所有其它的路都是不完整的,是...
    牧田麻麻阅读 1,937评论 0 0
  • 在学这门语言之前,先要知道为什么要学习接口自动化呢?想想我们的团队中,是不是开发开发出了大量的外部可以调用的接口?...
    邵琼阅读 4,143评论 1 2
  • 7月28日,CFO良师益友公益平台与宁波银行北京分行联合组办CFO良师益友公益平台53期公益活动——CFO论道之并...
    CFO良师益友公益项目阅读 2,761评论 0 0
  • “以人为镜,可以明得失”这句名言是李世民惋惜魏征的离去而发的感慨。他把魏征看作是一面镜子,“魏征没,朕亡一镜矣!”...
    可比克克阅读 3,619评论 0 1