#include <iostream>
#include <vector>
int main()
{
const int max = 1000000;
std::vector<std::size_t> a(max);
for(std::size_t i = 1; i != a.size(); ++i) {
for (std::size_t j = 2 * i; j < a.size(); j += i) {
a[j] += i;
}
}
for (std::size_t i = 1; i != a.size(); ++i) {
if(a[i] == i) {
std::cout << i << " is a perfect number!" << std::endl;
}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oKQp7CiAgICBjb25zdCBpbnQgbWF4ID0gMTAwMDAwMDsKICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c2l6ZV90PiBhKG1heCk7CgogICAgZm9yKHN0ZDo6c2l6ZV90IGkgPSAxOyBpICE9IGEuc2l6ZSgpOyArK2kpIHsKICAgICAgICBmb3IgKHN0ZDo6c2l6ZV90IGogPSAyICogaTsgaiA8IGEuc2l6ZSgpOyBqICs9IGkpIHsKICAgICAgICAgICAgYVtqXSArPSBpOwogICAgICAgIH0KICAgIH0KICAgIGZvciAoc3RkOjpzaXplX3QgaSA9IDE7IGkgIT0gYS5zaXplKCk7ICsraSkgewogICAgICAgIGlmKGFbaV0gPT0gaSkgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgaSA8PCAiIGlzIGEgcGVyZmVjdCBudW1iZXIhIiA8PCBzdGQ6OmVuZGw7CiAgICAgICAgfQogICAgfQp9Cg==