题目就是求101到200之间所有的质数并打印出来。我写的程序如下,但得不到正确结果,大家帮忙看看,问题在哪
public class zhishu{
public static void main(String argus[]){
int i = 101;
int j = 2;
while(i<=200){
boolean f = true;
while(j<i){
if(i%j==0){
f = false;
break;
}
j++;
}
if(!f) continue;
System.out.print(i+" ");
i=i+2;
}
}
}
运行结果是101 103 105 107 109 111等等。

解决方案 »

  1.   

    public class zhishu {
    public static void main(String argus[]) {
    int i = 101;
    int j = 2;
    boolean f = true;
    while (i <= 200) {
    f=true;
    j=2;
    while (j < i) {
    if (i%j==0) {
    f = false;
    break;
    }
    j++;
    }
    if (!f){
    i = i + 2;
    continue;
    }
    System.out.print(i + " ");
    i = i + 2;
    }
    }
    }
      

  2.   

    int j=2;
    while(j<i){..............
      

  3.   

    public class zhishu{ 
       public static void main(String argus[]){ 
            int i = 101; 
            int j = 2; 
            for(i;i<200;i++)
            {
               for(j; j<i;j++)
               {
                   if(!(i%j))
                       brsak;
                   if(i>k)
                       System.out.print(i+" ");
                }
            }
              
        } 

      

  4.   

    楼主比较一下:
    public class ZhiShu {
    public static void main(String argus[]) {
    int i = 101;
    int j = 2;
    while (i <= 200) {
    j = 2;
    boolean f = true;
    while (j < i) {
    if (i % j == 0) {
    f = false;
    break;
    }
    j++;
    }
    if (f)
    System.out.print(i + " ");
    i = i + 2;
    }
    }
    }
      

  5.   


    public class zhishu {
    public static void main(String argus[]) {
    int i = 101;
    int j = 2;
    boolean f = true;
    while (i <= 200) {
    //与1楼这不同...
    int num = (int) Math.sqrt(i);
    f=true;
    j=2;
    while (j < num) {
    if (i % j == 0) {
    f = false;
    break;
    }
    j++;
    }
    if (!f){
    i = i + 2;
    continue;
    }
    System.out.print(i + " ");
    i = i + 2;
    }
    }
    }