我试图找到一个数字的最大素数。某些执行后,代码停止工作(至少我认为是这样)。 printf
部分用于调试。
数字是600851475143。
long recursed(long i, long j){
if (j == 1){
return i;
}
else if (i%j != 0){
printf("Else if i : %ld %ld\n", i, j);
return recursed(i, j-1);
}
else{
i /= j;
printf("Else i : %ld\n", i);
return recursed(i, i-1);
}
}
答案 0 :(得分:0)
典型的32位长为4,294,967,295。
您给了它600,851,475,143,它要大得多。
请确保您在x64上进行编译,并使用unsigned long long
。
然后检查是否溢出。