def pri_num(val): #求出该数字的所有素数
for i in range(2,val+1):
if i<=4:
j=i
else:
j=i//2
for k in range(2,j):
if i%k==0:
break
else:
num.append(i)
def sol_factor(val,k): #求因数
for i in k: #遍历素数
if val%i==0:
return i
break
else:
return 1
for input_num in range(2,1000):
sum_num=1
num=[] #该数字范围内的所有素数
fac_num=[] #该数字的因数
pri_num(input_num) #求出该数字的所有素数
decom_num=input_num #要分解的数
while True:
res=sol_factor(decom_num,num)
if res==decom_num: #遍历结束
sum_num +=res
fac_num.append(str(res))
break
else:
sum_num +=res
fac_num.append(str(res))
decom_num= decom_num/res
if sum_num==input_num:
print(input_num,'=1+','+'.join(fac_num)) #分解后的表达式
017. 一个数如果恰好等于它的因子之和,这个数成为“完数”、例如6=1+2+3.编写程序找出1000以内所有
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 转眼间毕业两年了,朋友圈里高中老师发出了高三学子高考前最后一次角逐的模考照片,今年大学毕业的学弟学妹们晒出了史上最...