public class Find{
   public static void main(String args[]){
     System.out.println("* * 100-200间的所有素数* *");
     int n=0;
     
    lab:
    for(int i=101;i<200;i+=2){
      int k=15;                 //看不懂这一步,和下面的FOR
      for (int j=2;j<=k;j++)    //还有这一步,
        if(i%j==0)
         continue lab;          //这一步也的点晕
      System.out.print(" "+i);
    n++;
    if(n<10)
     continue;
    System.out.println();
     n=0;                      //这地方的n=0又是干什么用的啊
     }
     System.out.println();   
     }
}

解决方案 »

  1.   

    判断素数方法:
    假设数为m,不能被<=Math.sqrt(m)的数整除的话,那么m则是素数,
    15*15 = 225  < 200;
      

  2.   

    一楼说的比较本质,关键是看懂为什么从15开始判断。
    contunue lab判断不是素数就返回+1继续。
    后面的赋值n=0是为了断行。可以自己改一下值判断一下
      

  3.   

    咋一眼看 确实比较突兀了  呵呵  其实就是让for循环收敛的快些 所以用了(int)Math.sqrt(200)
      

  4.   

    if(n <10)
        continue;
    System.out.println(); 
    这里是为了一行输出10个数
      

  5.   

     K = 15 和下面的循环是:拿到一个101到200间的数的时候以1到15为除数一个一个循环, continue lab是返回外层循环,也就是当IF 成立的时候程序返回外循环继续循环。N 是一个记数用的,当一行的素数的个数大于10的时候N归0就是换行继续。 我也初学,我是这样理解的。
      

  6.   

    public class Find{ 
      public static void main(String args[]){ 
        System.out.println("* * 100-200间的所有素数* *"); 
        int n=0; 
        
        lab: 
        for(int i=101;i <200;i+=2){ 
          int k=15;                //这一步是给K赋值,为了控制下面的for循环的结束.
          for (int j=2;j <=k;j++)    //从j=2开始循环,到j=k(也就是j=15了)停止循环,每循环一次j+1. 
            if(i%j==0) 
            continue lab;          //是返回外层循环,也就是当IF 成立的时候程序返回外循环继续循环 
          System.out.print(" "+i); 
        n++; 
        if(n <10) 
        continue; 
        System.out.println(); 
        n=0;                      //是一个记数用的,当一行的素数的个数大于10的时候n=0就是换行继续 
        } 
        System.out.println();  
        } 

     
      

  7.   

    一楼说的<=Math.sqrt(m)又是什么呢?
    还是有点不太懂???
      

  8.   

    for(){for(){}}双重循环。continue退出内层循环,n=0;就是循环十次后,重新开始一轮循环,每次循环十次。    
      

  9.   

    public class PPP{ 
      public static void main(String args[]){ 
        System.out.println("* * 100-200间的所有素数* *"); 
       // int n=0; 
        
        lab: 
        for(int i=101;i <200;i+=2)
        { 
          int k=15;                //看不懂这一步,和下面的FOR 
          for (int j=2;j <=k;j++)    //还有这一步, 
            if(i%j==0) 
            continue lab;          //这一步也的点晕 
          System.out.println(" "+i); 
        }
       // n++; 
       // if(n <10) 
       // continue; 
       // System.out.println(); 
       // n=0;                      //这地方的n=0又是干什么用的啊 
       // } 
       // System.out.println();  
      } 
    }