우호적 인 숫자는 서로 다른 두 숫자이므로 각각의 고유 약수의 합이 다른 숫자와 같습니다. (숫자의 고유 약수는 숫자 자체가 아닌 해당 수의 양수입니다. 예를 들어 6의 고유 약수는 1, 2, 3입니다.)
파이썬에서는 이들 각각의 합계를 다른 것과 비교하여 이 숫자를 찾을 수 있습니다. 예를 들어,
def are_amicable(x, y) if x==y: return False # Find sum of their proper divisors sum_x = sum(e for e in range(1, x//2+1) if x % e == 0) sum_y = sum(e for e in range(1, y//2+1) if y % e == 0) #Return true of they satisfy the last condition return sum_x==y and sum_y==x print(are_amicable(15, 20)) print(are_amicable(220, 284))
이것은 출력을 제공합니다
False True