Số amicable (hữu nghị) là hai số khác nhau liên quan sao cho tổng ước số thực sự của mỗi số bằng số kia. (Ước thực sự là ước dương khác chính số đó. Ví dụ ước thực sự của 6 là 1, 2, 3.)
Trong Python, tìm các số này bằng cách lấy tổng ước của từng số so sánh với số kia. Ví dụ,
def are_amicable(x, y) if x == y: return False # Tìm tổng ước thực sự 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) # Trả về true nếu thỏa điều kiện cuối return sum_x == y and sum_y == x print(are_amicable(15, 20)) print(are_amicable(220, 284))
Kết quả
False True