#include <iostream>
#include <cinttypes>
#include <vector>
size_t f(size_t n) {
size_t r = 1;
std::vector<uint8_t> sieve(n + 1, 1);
for (size_t i = 2; i <= n; ++i) {
if (sieve[i]) {
for (size_t j = i + i; j <= n; j += i)
sieve[j] = 0;
size_t p = i;
while (p * i <= n)
p = p * i;
r *= p;
}
}
std::cout << n << " " << r << std::endl;
return r;
}
int main() {
f(10);
f(20);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2ludHR5cGVzPgojaW5jbHVkZSA8dmVjdG9yPgoKc2l6ZV90IGYoc2l6ZV90IG4pIHsKCXNpemVfdCByID0gMTsKCXN0ZDo6dmVjdG9yPHVpbnQ4X3Q+IHNpZXZlKG4gKyAxLCAxKTsKCWZvciAoc2l6ZV90IGkgPSAyOyBpIDw9IG47ICsraSkgewoJCWlmIChzaWV2ZVtpXSkgewoJCQlmb3IgKHNpemVfdCBqID0gaSArIGk7IGogPD0gbjsgaiArPSBpKQoJCQkgICAgc2lldmVbal0gPSAwOwoJCQkgICAgCgkJCXNpemVfdCBwID0gaTsKCQkJd2hpbGUgKHAgKiBpIDw9IG4pCgkJCSAgICBwID0gcCAqIGk7CgkJCSAgICAKCQkJciAqPSBwOwoJCX0KCX0KCQoJc3RkOjpjb3V0IDw8IG4gPDwgIiAiIDw8IHIgPDwgc3RkOjplbmRsOwoJcmV0dXJuIHI7Cn0KCmludCBtYWluKCkgewoJZigxMCk7CglmKDIwKTsKCXJldHVybiAwOwp9