java-基础练习题2

题目:判断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

 

posted @ 2016-08-10 20:51  熠然  阅读(175)  评论(0编辑  收藏  举报