Bài 4: Hai số tự nhiên m và n được gọi là hai số bạn bè nếu tổng các ước thực sự của n bằng m. Hãy viết chương trình tìm các cặp số bạn bè nhỏ hơn số n cho trước.
Ví dụ: 283 và 220 là cặp số bạn bè vì tổng các ước thực sự của:’
220 là: 2+4+5+10+11+20+22+44+55+110 = 283
Bằng cách nhấp vào Đăng nhập, bạn đồng ý Chính sách bảo mật và Điều khoản sử dụng của chúng tôi. Nếu đây không phải máy tính của bạn, để đảm bảo an toàn, hãy sử dụng Cửa sổ riêng tư (Tab ẩn danh) để đăng nhập (New Private Window / New Incognito Window).
def sum_of_proper_divisors(n): """Tính tổng các ước thực sự của n""" sum_divisors = 1 # Ước 1 luôn có for i in range(2, int(n ** 0.5) + 1): if n % i == 0: sum_divisors += i if i * i != n: sum_divisors += n // i return sum_divisors
def find_amicable_pairs(n): """Tìm các cặp số bạn bè nhỏ hơn n""" for i in range(1, n): sum_i = sum_of_proper_divisors(i) if sum_i <= n and sum_of_proper_divisors(sum_i) == i and sum_i != i: print(f"({i}, {sum_i})")
n = int(input("Nhập số n: ")) find_amicable_pairs(n)
Tham gia Cộng đồng Lazi trên các mạng xã hội | |
Fanpage: | https://www.fb.com/lazi.vn |
Group: | https://www.fb.com/groups/lazi.vn |
Kênh FB: | https://m.me/j/AbY8WMG2VhCvgIcB |
LaziGo: | https://go.lazi.vn/join/lazigo |
Discord: | https://discord.gg/4vkBe6wJuU |
Youtube: | https://www.youtube.com/@lazi-vn |
Tiktok: | https://www.tiktok.com/@lazi.vn |
Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi
Vui | Buồn | Bình thường |