我完全成功了,但是有一个小问题:即使我有最大的因素,它仍然打印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);
答案 0 :(得分:0)
主要标志在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
}