解释一下 这个质数 java 程序 谢谢1

来源:百度知道 编辑:UC知道 时间:2024/05/22 17:30:37
class FangFa2
{
public static void zhiShu(){
for(int i=101;i<=200;i++){
int a=i/2;
for(int j=2;j<=a;j++){
if(i%j==0)
break;
if(j==a) //??这是为什么??
System.out.println(i);
}
}
}
public static void main(String[] args){
zhiShu();
}
}

class FangFa2
{
public static void zhiShu(){
for(int i=101;i<=200;i++){
int a=i/2;
for(int j=2;j<=a;j++){
if(i%j==0)
break;
if(j==a) //如果j==a说明它是质数啊,因为,如果不是质数的话,肯定有小于它本身的因数,也就算肯定会在上面的循环中break掉,j也就不可能==a了啊
System.out.println(i);
}
}
}
public static void main(String[] args){
zhiShu();
}
}

if(i%j==0)
break;
这里就是判断i不是质数时,退出循环。
经过以上筛选,直到最后一个循环j==a时,没有运行break;行
说明i%a!=0 又int a=i/2
所以i不能被2~a的数整除,所以i是个质数,被输出