栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python求完数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python求完数

“”"
题目:

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出n以内的所有完数。

分析:
将每一对因子加进集合,在这个过程中已经自动去重。最后的结果要求不计算其本身
“”"

① 循环嵌套
count = 0
for i in range(1,1000):   
    for j in range(1,i):
        if i%j==0:
            count +=j
    if(count == i):
         print(i,"是完数")

    count=0
② 利用列表
factor=[] 
for i in range(1,1000):
    for j in range(1,i):
        if i % j ==0:
            factor.append(j)
    if sum(factor)==i:
        print(i,"是完数")

    factor=[]
③ 函数
def n(n):
    count = 0
    for i in range(1,n):
        if n%i==0:
            count +=i
    if count==n:
        return True
    else:
        return False

for i in range(1,1001):# 1-1000判断
    if n(i):
        print(i)
④ 输入一个数判断是否为完数 1. for循环实现
a = int(input('::'))

c = 0
for i in range(1,a):
    if a%i == 0:
         c+=i
if c==a:
    print('这个数是完数')
else:
    print('这个数不是完数')
2.while循环实现
n = int(input('::'))
c1 = 0
i = 1 
while i<=n-1: # 注意:要小于n
    if n%i == 0:
         c1+=i
    i+=1
if c1==n:
    print('这个数是完数')
else:
    print('这个数不是完数')
⑤ 方式五
for i in range(1,1000):
    s = i
    for j in range(1,i):
        if i % j==0:
            s -= j
    if s == 0:
        print(i,'完数')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/861242.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号