题目:判断101-200之间有多少个素数,并输出所有素数。
1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
方法1.素数,大于等于2, 除了1和本身以外,不能被整除,所以就从 2 开始进行 for 循环,小于 number 的情况下,看是否能够 number 整除 i,能整除就不是素数了。
1 private boolean isPrime2(int number) { 2 boolean flag = true; 3 if (number < 2) { 4 flag = false; 5 } 6 for (int i = 2; i < number; i++) { 7 if (number % i == 0) { 8 flag = false; 9 break; 10 } 11 } 12 return flag; 13 }
方法2.判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。 在 for 循环的时候,遍历从 2 到 Math.sqrt(number) ,能够被整除
1 private boolean isPrime3(int number) { 2 boolean flag = true; 3 if (number < 2) {// 素数不小于2 4 return false; 5 } else { 6 for (int i = 2; i <= Math.sqrt(number); i++) { 7 if (number % i == 0) {// 若能被整除,则说明不是素数,返回false 8 flag = false; 9 break; 10 } 11 } 12 } 13 return flag; 14 }
测试代码:
1 @Test 2 public void test2() { 3 int count = 0; 4 for (int i = 101; i <= 200; i++) { 5 if (isPrime3(i)) { 6 System.out.print(i + ","); 7 count++; 8 } 9 } 10 System.out.println(); 11 System.out.println("共计:" + count); 12 }
测试结果:
101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,
共计:21