我的代码:
public class zhishu{ public static void main(String args[]){

for(int i=100;i<=200;i++){
for(int j=2;j<i;j++){
int k=i%j;
if(k!=0)
System.out.println(i);
//continue;
//return;
//break;
}
}
}
}需要跳出循环吗?  需要的话怎么跳出那个内循环?

解决方案 »

  1.   

    我不是高手,但是我可以给你建议,
    for(int i=100;i<=200;i++){
     boolean flag =true;
    for(int j=2;j<(int)Math.sqrt(i);j++){
    if(i%j=0){
    flag =false;
    }
    if(flag){
    System.out.println(i);
    }
    //continue;
    //return;
    //break;
    }
    }
      

  2.   

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

  3.   

    在源代码的基础上改了下public class zhishu { public static void main(String args[]) {
    boolean flag = true;//是否是质数的标志位
    //忽略偶数
    for (int i = 101; i <= 200; i+=2) {
    flag = true;//还原标志位
    //判断范围 (3-根号i)中的奇数
    for (int j = 3; j < Math.sqrt(i); j+=2) {
    int k = i % j;
    if (k == 0){
    //非质数 跳出内循环,将标志位置为false
    flag = false;
    break;
    }
    }
    if(flag)
    System.out.println(i);//是质数的话就输出
    }
    }
    }
      

  4.   


    Math.sqrt(i)这里应该是<= ,一时大意。。for (int j = 3; j <= Math.sqrt(i); j+=2) {
      

  5.   

    筛法+bitset?
    可优化的地方还是相当多的
    比如求100000000以内的质数?
      

  6.   

    Math.sqrt(i)很重要,可以让效率高很多。