java 双素数_【视频+图文】Java基础经典练习题(一)输出2-100之间的素数,及素数个数...

83f9fb18ff733ce13d5d487408acd220.png能解决题目的代码并不是一次就可以写好的。

我们需要根据思路写出代码后

通过debug模式找到不足并进行更改

多次测试后才可得到能解决题目的代码!

通过学习,练习【Java基础经典练习题】

让我们一起来培养这种解决问题思路。

第一题:判断判断2-100之间有多少个素数,并输出所有素数。

01视频讲解:1262e08d0a7775a3e3e70b59da3098c2.png

8b22ab26ef493287a87a82da4f4b89c6.png

02思路分析:

Q1:什么是素数?

A1: 素数(质数)指的是在大于1的自然数中

除了1和该数本身外,无法被其它自然数整除的数。(也就是说一个数只有1和它本身两个因数)

Q2:如何判断一个数有除了1和该数本身之外的因数?

A2:让我们以4为例来分析:判断4能否整除一个数,无非只有以下4种情况:

情况1:4/1

情况2:4/2

情况3:4/3

情况4:4/4

那么我们又知道:每个数都有1 和 它本身这两个因数(即每个数都可以被1和它本身整除)

所以呢我们在【判断4能否整除一个数】就只需要考虑以下这两种情况:

情况2:4/2

情况3:4/3

由此我们可以总结出来规律:

判断一个数是否有其它因数,就让这个数去除[2-(需判断的数-1)]这个范围内的数。

如判断4就只需看:4/2、4/3

看这两种情况中是否有整除情况发生:

有则说明此数不为素数,就进行下一次判断

若没有说明此数为素数,需输出此数,并让保存【素数个数的变量】加1后再进行下一次判断。

8b22ab26ef493287a87a82da4f4b89c6.png

03.代码+详解+答案:

package Exercise;

public class SuShu1 {

public static void main(String[] args) {

int i = 0;

int j = 0;

int count = 0;      //储存2-100之间的素数个数

boolean flag = true;

//用处:在当一个数有【除1和它本身之外的因数】时,使其值变为false,以便进入下一次循环

for (i = 2; i <= 100; i++) {    //从2-100开始进行循环

flag = true;

//每完成一次for循环需要把flag值重新置为true,否则将会影响下次的循环

for (j = 2; j < i; j++) {

//用此for循环的数字来判断i是否有【除1和它本身之外的因数】

if (i % j == 0) {   //如果i%j==0,说明i有【除1和它本身之外的因数】

flag = false;      //这时让flag = false;

break;              //并退出这个双重for循环

}

}

if (flag == true) {

//从双重for循环退出后,判断flag的值是否是true,若为true则说明此数为素数

count++;        //存储素数的总和加1

System.out.println("从2-100之间的素数有:" + i);      //输出素数结果

}

}

System.out.println("从2-100之间的素数个数有:" +count);    //输出素数总个数

}

}

代码详解:(以i=4为例)

1. i=4   4<100

2. flag = true

3.  j=2 ,2<4

4. 因为i%j == 0(即4%2 == 0)所以flag = false。并执行break语句。

5. 执行break语句后就退出第二个for循环。(执行break语句后,break语句后面的代码不会执行并且会终止本层循环)

6. 因为现在的flag  ==false不满足if(flag == true)条件

7. 所以i++ i=5,进入下一次的判断

结果:2bd1849c67c9426c2016e26abd0da646.png

8b22ab26ef493287a87a82da4f4b89c6.png

04彩蛋:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值