1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <math.h> #include <iostream> int FermatFactor(int oddNumber) { int a = sqrt(oddNumber)+1; int b2 = a*a - oddNumber; std::cout << "B2: " << b2 << "a: " << a << std::endl; int tmp = sqrt(b2); while (tmp*tmp != b2) { a = a + 1; b2 = a*a - oddNumber; std::cout << "B2: " << b2 << "a: " << a << std::endl; tmp = sqrt(b2); } return a + tmp; } int main() { std::cout << "5959 => " << FermatFactor(5959) << std::endl; return 0; } |
I2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IEZlcm1hdEZhY3RvcihpbnQgb2RkTnVtYmVyKQp7CiAgICBpbnQgYSA9IHNxcnQob2RkTnVtYmVyKSsxOwogICAgaW50IGIyID0gYSphIC0gb2RkTnVtYmVyOwogICAgc3RkOjpjb3V0IDw8ICJCMjogIiA8PCBiMiA8PCAiYTogIiA8PCBhIDw8IHN0ZDo6ZW5kbDsKCiAgICBpbnQgdG1wID0gc3FydChiMik7CiAgICB3aGlsZSAodG1wKnRtcCAhPSBiMikKICAgIHsKICAgICAgICBhID0gYSArIDE7CiAgICAgICAgYjIgPSBhKmEgLSBvZGROdW1iZXI7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJCMjogIiA8PCBiMiA8PCAiYTogIiA8PCBhIDw8IHN0ZDo6ZW5kbDsKICAgICAgICB0bXAgPSBzcXJ0KGIyKTsKICAgIH0KCiAgICByZXR1cm4gYSArIHRtcDsKfQoKaW50IG1haW4oKSB7CglzdGQ6OmNvdXQgPDwgIjU5NTkgPT4gIiA8PCBGZXJtYXRGYWN0b3IoNTk1OSkgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0=
-
upload with new input
-
result: Success time: 0.02s memory: 2724 kB returned value: 0
B2: 125a: 78 B2: 282a: 79 B2: 441a: 80 5959 => 101


