class Go {
public static void main
(String[] args
) {
long myNumber = 600L;
System.
out.
print(getLargestPrimeFactor
(myNumber
));
}
public static long getLargestPrimeFactor(long inNum) {
int i; // define i here to remain in returnable scope
for (i = 1; inNum > 1; i++) { // start at 2 (first prime) and loop until inNum == 1
while (inNum % i == 0) { // if inNum evenly divides by i
inNum /= i; // divide inNum by i until it is no longer divisible
} // Note, (inNum % i == 0) === true only when
} // i is a prime number due to algorithm structure
return i-1; // return i-1, -1 because of post loop incrementation
}
}
Y2xhc3MgR28gewoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCiAgICBsb25nIG15TnVtYmVyID0gNjAwTDsKICAgIFN5c3RlbS5vdXQucHJpbnQoZ2V0TGFyZ2VzdFByaW1lRmFjdG9yKG15TnVtYmVyKSk7CgogICAgfQogICAgcHVibGljIHN0YXRpYyBsb25nIGdldExhcmdlc3RQcmltZUZhY3Rvcihsb25nIGluTnVtKSB7CiAgICAgIGludCBpOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRlZmluZSBpIGhlcmUgdG8gcmVtYWluIGluIHJldHVybmFibGUgc2NvcGUKICAgICAgZm9yIChpID0gMTsgaW5OdW0gPiAxOyBpKyspIHsgLy8gc3RhcnQgYXQgMiAoZmlyc3QgcHJpbWUpIGFuZCBsb29wIHVudGlsIGluTnVtID09IDEKICAgICAgICAgIHdoaWxlIChpbk51bSAlIGkgPT0gMCkgeyAgLy8gaWYgaW5OdW0gZXZlbmx5IGRpdmlkZXMgYnkgaQogICAgICAgICAgICAgIGluTnVtIC89IGk7ICAgICAgICAgICAvLyBkaXZpZGUgaW5OdW0gYnkgaSB1bnRpbCBpdCBpcyBubyBsb25nZXIgZGl2aXNpYmxlCiAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIE5vdGUsIChpbk51bSAlIGkgPT0gMCkgPT09IHRydWUgb25seSB3aGVuCiAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGkgaXMgYSBwcmltZSBudW1iZXIgZHVlIHRvIGFsZ29yaXRobSBzdHJ1Y3R1cmUKICAgICAgcmV0dXJuIGktMTsgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGktMSwgLTEgYmVjYXVzZSBvZiBwb3N0IGxvb3AgaW5jcmVtZW50YXRpb24KICAgIH0KfQo=