我已经设法完成了,但有一个小问题:即使我得到了最大的因子,它仍然输出9和15作为质数。我应该如何更改代码?
int num=2,temp=0;
do{
for(int i=(num-1);i>=2;i--){
if(num%i==0){
System.out.println(num+" largest factor is "+i);
break;
}
}
boolean prime=false;
for(int j = 2; j < num; j++){
if(num % j == 0){
break;
}
else{
prime=true;
}
}
if(prime == true){
System.out.println(num+" is prime");
}
num++;
}while(num<21);发布于 2017-10-13 10:41:36
prime标志在j=2上设置为9,然后在3上断开,所以您可以这样做
boolean flag=true;
for(int j = 2; j < num; j++){
if(num % j == 0){
flag=0;
break;
}
}
if(flag){
//print num is prime
}
else{
//not prime
}https://stackoverflow.com/questions/46721657
复制相似问题