該方案適用於小的數字,但只要我有一個大的數量這樣它不工作 這裏是我的代碼java程序給予空白輸出
public class Main {
public static void main(String[] args) {
long no=600851475143L,i;
int result=0;
for(i=(no/2);i>=2;i--){
if(no%i==0){
if(checkPrime(i)){
System.out.println("Longest Prime Factor is: " + i);
break;
}
}
}
}
private static boolean checkPrime(long i){
for(long j=2L;j<=(int)Math.sqrt(i);j++){
if(i%j==0)
return false;
}
return true;
}
}
錯誤?輸出? – Massimo
從一瞥看它可能有效,但你確實意識到它將運行相當長的時間?在你的樣品看起來會有幾百億次迭代... –
我等了5-7分鐘,仍然沒有運氣..只是空白輸出 –