#include int main() { const unsigned n_max = 999999; unsigned n, m, d, d2; for (n = 2; n <= n_max; n++) { for (d = 2, m = 1; d * d <= n && m <= n; d++) if (!(n % d)) { m += d; d2 = n / d; if (d2 != d) m += d2; } if (m == n) printf("%u\n", n); } }