用JAVA 判断101-200之间有多少个素数,并输出所有素数? 第二个for语句后面就不懂了???什么意思?

public class kt {
public static void main(String[] args) {

int count = 0;
boolean b = false;
for(int i=101; i<200; i+=2)
{
for(int j=2; j<=i-1; j++)
{
if(i % j == 0) { b = false; break; }
else { b = true; }
}
if(b == true) {count ++;
System.out.println(i );
}
}
System.out.println( "素数个数是: " + count);

}

public class kt {
  public static void main(String[] args){
    int count = 0;
    for(int i=101; i<200; i+=2){   //从101循环到200的奇数(>2的偶数不是素数)
      int j=2;
      for(; j<=i/2+1; j++){   //从2循环到i/2+1(因为比i/2大的数不可能整除i)
        if(i % j == 0)  break;  //判断j是否能整除i,能则中断对j的循环
      } //for j
      if(j==i/2+1) count++;    //如果j=i/2+1说明比i/2+1小的数都不能整除i,也就是质数
    }//for i
    System.out.println( "素数个数是: " + count);
  }//main
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-26
根据素数的定义,素数只能被1和它本身整除。i表示101—200之间的数,第二个for语句表示2至比这个数小一的数,如果期间,有一个能被其整除,就不是素数,是素数,count加一。
第2个回答  2013-09-23
首先理解什么是素数 素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数
第二个for循环 i是101到200的一个数 每次循环 j会增加 if判断 i%j是否等域零 如果等于零就说明这个数不是素数 结束循环追问

for(int j=2; j<=i-1; j++);j<=i-1什么意思?

追答

j是最小的素数 j每次循环都会加1 i是你要比较素数 j<=i-1 就是i每次和小与它的数比较
主要获得 2到i中的数
当条件不满足就会退出循环

第3个回答  2013-09-23

我直接对你下面那2个追问回答吧。素数的定义本身就是只能被1和自身所整除的数字。

for(int j=2; j<=i-1; j++)
{
if(i % j == 0) { b = false; break; } 
else    { b = true; }
}

这里面的for循环,从2开始可以去掉1,到j-1结束就是去掉自身j。如果i对除1和自身以外的结果都不能取余为0(也就是不能整除)的话。那他也就是素数,符合自身定义。

第4个回答  2013-09-23
第二个for循环是为了判断这个数是不是素数,素数不能被其他的数整除,他循环从2到他本身小一,循环一次判断是不是被整出了追问

for(int j=2; j<=i-1; j++);j<=i-1什么意思?

相似回答