Giới thiệu
Số Betrothed là cặp số (a, b) thỏa mãn: tổng các ước số thực sự (aliquot sum) của a bằng b+1, và ngược lại.
Điều kiện: σ(a) = σ(b) = a + b + 1, trong đó σ(n) là tổng tất cả ước số của n.
Các cặp đầu tiên
(48, 75), (140, 195), (1050, 1925), (1575, 1648), (2024, 2295), (5775, 6128)
Tất cả cặp đã biết có chẵn lẻ khác nhau. Cặp cùng chẵn/lẻ phải > 10¹⁰.
Thuật toán
1. Tính tổng ước số thực sự của a (gọi sum_a) 2. Tính tổng ước số thực sự của b (gọi sum_b) 3. Nếu sum_a == b+1 VÀ sum_b == a+1 → Là Betrothed
Ví dụ
a = 48: ước thực sự = 1,2,3,4,6,8,12,16,24 → tổng = 76 = 75+1 ✓ b = 75: ước thực sự = 1,3,5,15,25 → tổng = 49 = 48+1 ✓ → (48, 75) là Betrothed
Code C
#include <stdio.h>
int sum_proper_divisors(int n) {
int sum = 0;
for (int i = 1; i < n; i++)
if (n % i == 0) sum += i;
return sum;
}
int main() {
int a = 48, b = 75;
int sum_a = sum_proper_divisors(a);
int sum_b = sum_proper_divisors(b);
if (sum_a == b + 1 && sum_b == a + 1)
printf("%d and %d are Betrothed numbers\n", a, b);
else
printf("%d and %d are NOT Betrothed numbers\n", a, b);
return 0;
}
Kết quả
48 and 75 are Betrothed numbers
Lưu ý
Code gốc in sai "are not Betrothed" do lỗi logic điều kiện. Đã sửa trong phiên bản trên.