#include <iostream>
using namespace std;
int main() {
const long numm = 600851475143;
long newnumm = numm;
long largestFact = 0;
int counter = 2;
while (counter * counter <= newnumm) {
if (newnumm % counter == 0) {
newnumm = newnumm / counter;
largestFact = counter;
} else {
counter++;
}
}
if (newnumm > largestFact) { // the remainder is a prime number
largestFact = newnumm;
}
cout<<largestFact<<endl;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7Cgljb25zdCBsb25nIG51bW0gPSA2MDA4NTE0NzUxNDM7CmxvbmcgbmV3bnVtbSA9IG51bW07CmxvbmcgbGFyZ2VzdEZhY3QgPSAwOwogCmludCBjb3VudGVyID0gMjsKd2hpbGUgKGNvdW50ZXIgKiBjb3VudGVyIDw9IG5ld251bW0pIHsKICAgIGlmIChuZXdudW1tICUgY291bnRlciA9PSAwKSB7CiAgICAgICAgbmV3bnVtbSA9IG5ld251bW0gLyBjb3VudGVyOwogICAgICAgIGxhcmdlc3RGYWN0ID0gY291bnRlcjsKICAgIH0gZWxzZSB7CiAgICAgICAgY291bnRlcisrOwogICAgfQp9CmlmIChuZXdudW1tID4gbGFyZ2VzdEZhY3QpIHsgLy8gdGhlIHJlbWFpbmRlciBpcyBhIHByaW1lIG51bWJlcgogICAgbGFyZ2VzdEZhY3QgPSBuZXdudW1tOwp9CmNvdXQ8PGxhcmdlc3RGYWN0PDxlbmRsOwoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJcmV0dXJuIDA7Cn0=