問題:如果整數 A 的全部因子(包括 1 不包括 A 本身)之和等於 B,B 的全部因子(包括 1 不包括 B 本身)之和等於 A,則稱 AB 是一對親密數,求 3000 以內全部的親密數
算法思路:
先求出一個數(假設爲n)的全部因子數之和(假設爲a),如果他(a)的全部因子數之和是他本身(n)的話,它便是親密數,
def yinZi(n):#求n的所有因子之和
sum=0;
for i in range(1,n):
if n%i==0:
sum+=i
return sum
for i in range(1,3001):
a=yinZi(i)#i(A)的全部因子之和,在這裏假設存在親密數b,求b的因子數
b=yinZi(a)#B的因子之和
if i==b:#如果A等於B的因子之和,便是親密數
print(i,a)
如果感覺不錯的話,點個贊哦。