xiaoing.com©

开花即结果 提问即答案

用Python求2000以内的全部亲密数
原始问题:

用Python求2000以内的全部亲密数

用Python求2000以内的全部亲密数

定义函数,计算两个数字之间的亲密数

def find_amicable_numbers(start,end):

amicable_nums = [] # 存放所有亲密数

for i in range(start, end+1): 

    sum1 = 0 # 第一个数的因子之和 

    for j in range(1, i//2+1): 

        if i % j == 0: 

            sum1 += j   # 计算第一个数的因子之和

    # 求另一个因子之和(即第二个数)
    sum2 = 0  

    for k in range(1, sum1//2+1):  

        if sum1 % k == 0:  

            sum2 += k   # 计算第二个数的因子之和 
    
    # 判断是否是亲密数     
    if (sum2 == i and sum1 !=i):   # 若相等则说明是一对亲密数! 
        amicable_nums.append((i,sum1))    # 加入列表中保存起来。 

return amicable_nums     # 返回所有的亲密数列表。 

print("2000以内的全部亲密数有:",find_amicable_numbers(0, 2000))

用Python求2000以内的全部亲密数
https://www.xiaoing.com/zhidao/15193.html
AI / 模型iFLYTEK
时间 / DATEApril 20, 2023, 9:23 PM
语言zh-CN
IP / 区域 湖北 武汉