public class Zhishu extends TestCase {
public static void main(String[] args) {
             System.out.println("1");
    System.out.println("2");
             System.out.println("3");
    for( int i=4;i<100;i++){
for(int j=2;j<i;j++) 
                    {
if(i%j==0) {
  continue;
 }

System.out.println(i);
    }

}

}
}这个程序是想把100以内的质数找出来,结果里面的循环循环一次就要输出一次i。怎么把这个程序改好。大侠们帮帮忙啊。小第我刚学JAVA不久。

解决方案 »

  1.   

    for (int i = 4; i < 100; i++) {
    boolean flg = false;
    for (int j = 2; j < i; j++) {
    if (i % j == 0) {
    break;
    } else
    flg = true; }
    if (flg == true)
    System.out.println(i);
    }
      

  2.   

    if(i%j==0) {
       continue;
    }

    System.out.println(i);
    把这段改成:
    if(i%j==0)  break;
    if(i==(j+1))  System.out.println(i);试试。
      

  3.   

    public class Zhishu {
    public static void main(String[] args) {
    System.out.println("1");
    System.out.println("2");
    System.out.println("3");
    boolean flag = true;
        for( int i=4;i<100;i++){
    for(int j=2;j<i;j++){
    if(i%j==0) {
      flag = false;
     }
    }
    if(flag){
    System.out.println(i);
    }else{
    flag = true;
    }
    }
    }
    }
      

  4.   

    public static void main(String[] args){
             int count = 0;
             System.out.println("1");
             System.out.println("2");
             System.out.println("3");
             for(int i=4;i<100;i++){
                   count = 0;
                   for(int j=2;j<i;j++){
                        if(i%j==0){
                             count++;
                        }                   
                   }
                   if(count<1){
                        System.out.println("---"+i);
                   }
             }
        }
      

  5.   

    这个算法会快很多:
    for (int i = 4; i < 100; i++) {
    boolean flg = false;
    int x=(int)Math.sqrt(i);
    for (int j = 2; j <= x; j++) {
    if (i % j == 0) {
    flg=false;
    break;
    } else
    flg = true;
    }
    if (flg == true)
    System.out.println(i);
    }