#include <stdio.h>
#include <stdlib.h>

#define N 3000005
int factor[N], sum_of_divisor[N];

int main(int argc, char *argv[]) {
    int i, j, prime, current, x;
    
    for (i = 2; i < N; ++i) {
        if (factor[i] == 0) {
            factor[i] = i;
            for (j = i + i; j < N; j += i) factor[j] = i;
        }
    }
    
    sum_of_divisor[1] = 1;
    for (i = 2; i < N; ++i) {
        prime = factor[i], current = i, x = 1;
        while (current % prime == 0) {
            current /= prime;
            x = x * prime + 1;
        }
        sum_of_divisor[i] = x * sum_of_divisor[current];
        if (sum_of_divisor[i] == 3 * i) printf("%dは3完全数\n", i);
        if (sum_of_divisor[i] == 4 * i) printf("%dは4完全数\n", i);
    }
    
    
    return 0;
}
