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

1、外层循环作为被除数,内层循环作为除数。

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

3、内层循环结束,如果开关还为true。即被除数为质数,打印出来。

代码如下:

48304ba5e6f9fe08f3fa1abda7d326ab.png

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 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

运行效果:

7b8fe8e554f272881c36b72f07860e35.png

第二种思路:

1、这个程序用了两层循环,外层循环列举从2到100之间的每一个整数(作为被除数),然后在内层循环中用从2到它之之间的数去除它,如果找到一个能够整除它的数,内层循环将跳出。如果一张没找到能够整除它的数,则当内层循环将2到它直接按的所有数都尝试过一遍之后,内循环也跳出。

2、等到内层循环跳出之后,程序接着判断j是否大于等于i,如果是上面的情况,表明这个数是质数,于是将这个数打印出来。

48304ba5e6f9fe08f3fa1abda7d326ab.png

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 }

48304ba5e6f9fe08f3fa1abda7d326ab.png

运行效果:

18faa8c1208cae3a0356405ffa84585b.png

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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 }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值