用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))
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!