标签:break 没有 for == public 判断 多少 重复 ++
1 public class Demo01 { 2 public static void main(String[] args) { 3 int count = 0; 4 for (int i = 101; i <= 200; i++) { 5 boolean flag = false; 6 for (int j = 2; j < i; j++) { 7 if (i % j == 0) { 8 flag = true; 9 break; 10 } 11 } 12 if (!flag) { 13 count++; 14 System.out.print(i + " "); 15 } 16 } 17 System.out.println(count); 18 } 19 }
上述方法中第二次循环次数过多,可优化,利用Math.sqrt()方法,可避免重复,假如i=150时,j=10时,i已经被j整除,就没有必要让j循环到15了
1 public class Demo01 { 2 public static void main(String[] args) { 3 int count = 0; 4 //素数肯定是在奇数中产生,素数只能被1和它本身整除 5 for (int i = 101; i < 200; i += 2) { 6 boolean b = false; 7 //double Math.sqrt(double d) 求参数的平方根 返回值为double 8 for (int j = 2; j <= Math.sqrt(i); j++) { 9 if (i % j == 0) { 10 b = false; 11 break; 12 } else { 13 b = true; 14 } 15 } 16 if (b == true) { 17 count++; 18 System.out.print(i+" "); 19 } 20 } 21 System.out.println("素数个数是: " + count); 22 } 23 }
标签:break 没有 for == public 判断 多少 重复 ++
原文地址:http://www.cnblogs.com/zxinyu/p/7707326.html