java中求质数(素数)的问题

这篇笔记讲讲关于java中质数的问题。java

1、什么是质数(素数)?spa

定义:质数又称素数。一个大于1的天然数,除了1和它自身外,不能被其余天然数整除的数叫作质数;不然称为合数。它能够有无限个数。
code

 

2、java习题:输出1-100以内的全部质数

这题有几种解题思路:
blog

第一种思路:class

一、外层循环做为被除数,内层循环做为除数。循环

二、定义一个Boolean,标记外层循环数是否为质数。默认为 true。遍历

三、内层循环结束,若是开关还为true。即被除数为质数,打印出来。程序

 代码以下:im

 1 class Demo2{  2     public static void main(String args[]){
 3         //1既不是质数也不是和数,使用i从2开始。
 4         for(int i=2;i<=1000;i++){
 5             boolean flag = true;
 6             for(int j = 2;j < i;j++){
 7                 if(i % j==0){
 8                     flag = false;
 9                     break;//到了1000内的质数,就跳出循环,并输出结果。
10                 }
11             }
12             if(flag){
13                 System.out.print(" "+i);
14             }
15         }
16     }
17 }

运行效果:查询

 第二种思路:

一、这个程序用了两层循环,外层循环列举从2到100之间的每个整数(做为被除数),而后在内层循环中用从2到它之之间的数去除它,若是找到一个可以整除它的数,内层循环将跳出。若是一张没找到可以整除它的数,则当内层循环将2到它直接按的全部数都尝试过一遍以后,内循环也跳出。

二、等到内层循环跳出以后,程序接着判断j是否大于等于i,若是是上面的状况,代表这个数是质数,因而将这个数打印出来。

 1 class Demo3{
 2     public static void main(String args[]){
 3         int i,j;
 4         for(i = 2;i < 100;i++){
 5             for(j = 2;j < i;j++){
 6                 if(i % j == 0)
 7                     break;
 8             }
 9             if(j>=i){
10                 System.out.print(" "+i);
11             }
12         }
13     }
14 }

 运行效果:

2、java习题:输出0-100的质数和

 1 class Demo3{
 2     public static void main(String args[]){
 3         int sum = 0;
 4         int j = 2;
 5         // 找出1-100的质数之和
 6         for (int i = 2; i <= 100; i++) { // i值为2,质数为除去1和自身整除的数 j初始值为2去除偶数
 7 
 8             for (j = 2; j < i; j++) { //内层循环遍历查询i的整除数
 9 
10                 if (i % j == 0) { //判断当前i是否能够整除k值
11                     break; //整除则跳出循环
12                 }
13             }
14             //若是当前内循环没有正常结束j与i对比不成立
15             if (j >= i) { 
16                 sum += i; // 累计质数和
17                 System.out.println(i); //输出质数
18             }
19         }
20                 System.out.println(sum); //输出质数之和
21     }
22 }
相关文章
相关标签/搜索