這是在項目歐拉的第三個問題返回0。 我懷疑它只返回0,因爲我在初始化時將0賦給了'returnum'變量。我的代碼在較小的數字中工作正常,但它不適用於獲取正確答案所需的大數目(600851475143)。功能檢查大素因子返回使用大量的c當++
這是爲int的長度?如果是的話,我應該使用哪種數據類型?
這裏是我的代碼:
int problem3(long int num) {
long int returnum;
for (int i = 2; i < num; ++i) {
if (num % i == 0 && primecheck(i)) {
returnum = i;
}
}
return returnum;
}
這是我的「primecheck」功能:
bool primecheck(long int num) {
for (int i = 2; i <= num/2; ++i) {
if (num % i == 0) {
return false;
}
}
return true;
}
編輯:我試圖改變數據類型,但是當我這樣做,只是沒有按」沒有迴應,幾分鐘後顯示一個空的控制檯,然後崩潰。
使用'長long' –
600851475143寫成二進制的有40位。 – molbdnilo
@TemaniAfif這只是表明空白 – ZayyanAbbas