#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if (n == 1 || n == 2 || n == 3)
return 1;
if (n % 2 == 0 || n % 3 == 0)
return 0;
int sqrt_n
= (int)sqrt((double)n
); int k = -1;
do {
k += 6;
if (n % k == 0 || n % (k + 2) == 0)
break;
} while (k < sqrt_n);
return k > sqrt_n;
}
int main() {
int n,i;
for (i = 2; i <= n; i++) {
if (n % i == 0 && isPrime(i)) {
n = n / i;
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgppbnQgaXNQcmltZShpbnQgbikgewoJaWYgKG4gPT0gMSB8fCBuID09IDIgfHwgbiA9PSAzKQoJCXJldHVybiAxOwoJaWYgKG4gJSAyID09IDAgfHwgbiAlIDMgPT0gMCkKCQlyZXR1cm4gMDsKCWludCBzcXJ0X24gPSAoaW50KXNxcnQoKGRvdWJsZSluKTsKCWludCBrID0gLTE7CglkbyB7CgkJayArPSA2OwoJCWlmIChuICUgayA9PSAwIHx8IG4gJSAoayArIDIpID09IDApCgkJCWJyZWFrOwoJfSB3aGlsZSAoayA8IHNxcnRfbik7CglyZXR1cm4gayA+IHNxcnRfbjsKfQoKaW50IG1haW4oKSB7CglpbnQgbixpOwoJcHJpbnRmICgibmhhcCBzbyBuOiAiKTsKCXNjYW5mICgiJWQiLCZuKTsKCXByaW50ZiAoImNhYyB0aHVhIHNvIG50bzogIik7Cglmb3IgKGkgPSAyOyBpIDw9IG47IGkrKykgewoJCWlmIChuICUgaSA9PSAwICYmIGlzUHJpbWUoaSkpIHsKCQkJcHJpbnRmKCJcbiVkIiwgaSk7CgkJCW4gPSBuIC8gaTsKCQl9Cgl9CglyZXR1cm4gMDsKfQo=