Số siêu hoàn hảo được D. Suryanarayana khám phá năm 1969. Số n là siêu hoàn hảo nếu thỏa mãn: σ(σ(n)) = 2n, trong đó σ(n) là tổng các ước số của n.
Ví dụ: n = 16
- σ(16) = 1 + 2 + 4 + 8 + 16 = 31
- σ(31) = 1 + 31 = 32
- 2 × 16 = 32 = σ(σ(16)) → 16 là số siêu hoàn hảo
Counter-example: n = 6
- σ(6) = 1 + 2 + 3 + 6 = 12
- σ(12) = 1 + 2 + 3 + 4 + 6 + 12 = 28
- 2 × 6 = 12 ≠ 28 → 6 không phải số siêu hoàn hảo
Chương trình kiểm tra
#include <stdio.h>
// Tính tổng ước số
int divisorSum(int n) {
int sum = 0;
for (int i = 1; i * i <= n; ++i) {
if (n % i == 0) {
if (i == n / i) sum += i;
else sum += i + n / i;
}
}
return sum;
}
int main() {
int n = 16;
int n1 = divisorSum(n);
if (2 * n == divisorSum(n1))
printf("So %d la so sieu hoan hao", n);
else
printf("So %d khong phai so sieu hoan hao", n);
return 0;
}
Kết quả
So 16 la so sieu hoan hao