Python学习:作业02

您所在的位置:网站首页 找出完数Python Python学习:作业02

Python学习:作业02

2024-07-17 19:15| 来源: 网络整理| 查看: 265

如果一个数恰好等于它的因子之和,那这个数就是完全数,比如第一个数是6,它的约数有1,2,3,6,除去6本身外6=1+2+3,第二个完全数是28=1+2+4+7+14,那么问题来了:求出1000以内完全数。

分析过程:首先,要求出一个数字n的所有因子,即对1-n分别取余,余数为0即可;其次,再将这个数的所有因子(除了n本身)求和,如果等于n, 那么n就是完全数(perfect number)。

 

# -*- coding:utf-8 -*- # coding=utf-8 # coding:utf-8 # 方法1: a = range(1,1000) b = range(1,1000) perfectnum = [] for i in a: temp = [] for j in b: if j < i: if i%j==0: temp.append(j) else: continue else: break count = 0 for m in temp: count = count + m if count ==i: perfectnum.append(i) else: continue print(perfectnum) # 方法二: for aa in range(1,1000): sum = 0 for o in range(1,aa): if aa%o == 0: sum += o if sum == aa: print(aa)

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3