该方案适用于小的数字,但只要我有一个大的数量这样它不工作 这里是我的代码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分钟,仍然没有运气..只是空白输出 –