我编的程序代码如下:
public class Sushu{
  public static void main(String args[]){
    int i,j,g=1,k=0;
    System.out.println("从100到200之间的素数分别是:");
    for(i=100;i<=200;i++){
      for(j=2;j<i/2&&g==1;j++)
        if(i%j==0)
         g=0;
         
        
     if(g==1)
      {System.out.print(i+"  ");
      k+=1;
      if(k%5==0)//每输出5个素数则换行
        System.out.println();
        g=1;
      }
      }
  }
}
以上代码未能得到正确的结果,而以下程序则能够输出100到200之间的素数,但是不能满足每输出5个素数就换行的要求!!
public class Sushu{
  public static void main(String args[]){
    int i,j,g=1,k=0;
    System.out.println("从100到200之间的素数分别是:");
    for(i=100;i<=200;i++){
      for(j=2;j<i/2&&g==1;j++)
        if(i%j==0)
         g=0;  
     if(g==1)
      System.out.print(i+"  ");
      k+=1;
      if(k%5==0)//每输出5个素数则换行
        System.out.println();
        g=1;
      }
  }
}

解决方案 »

  1.   

    你是把非素数也计成换行元素内了int i, j, g = 1, k = 0;
            System.out.println("从100到200之间的素数分别是:");
            
            for (i = 100; i <= 200; i++) {
                g = 1;
                for (j = 2; j < Math.sqrt(i) && g == 1; j++)
                    if (i % j == 0) {
                        g = 0;
                        break;
                    }
                if (g == 1) {
                    System.out.print(i + "  ");
                    k += 1;
                    if (k % 5 == 0)// 每输出5个素数则换行
                        System.out.println();
                }
            }