找出给定范围内的所有素数,并且将其打印

本文详细介绍了一种高效的方法来找出指定范围内的所有素数。通过定义内外两层循环,外层循环遍历指定范围内的所有整数,内层循环判断每个数是否为素数。利用Math.sqrt()函数减少循环次数,提高了算法效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

找出给定范围内的所有素数,并且将其打印

\quad\quad在实现该方法前首先明白一个概念,即何为素数:素数(又称质数)指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。例如2、3、5这种只能被1与自身整除的数。
\quad\quad那么我们的思路也就从这里开始。要定义两层循环,第一层用于对该范围内的所有整数进行遍历。第二层循环用于对第一层循环中,传递过来的整数判断其是否是质数。
\quad\quad基本思路:
\quad\quad 1.定义一个列表用于存放素数,定义一个计数器返回素数的个数。定义一个判断是否为素数的标志(后面会提到如何使用)。
\quad\quad\quadArrayList isPrime=new ArrayList<>();//定义列表
\quad\quad\quadint count=0;//定义计数器,初始化为0
\quad\quad\quadboolean flag=true;//定义标志,初始化为true
\quad\quad 2.定义外侧循环,实现范围内的整数进行遍历。
\quad\quad\quadfor(int i=2;i<n;i++)//遍历2至n-1之间的所有的整数,由于2是最小的质数,所有从2开始。
\quad\quad 3.定义内层循环,用于判断是否为质数,如果是则flag为true,否则flag为false
\quad\quad\quadint sqrt=(int)Math.sqrt(i);//减少循环次数,提高效率
\quad\quad\quad for (int j = 2; j <(sqrt+1) ; j++) {
\quad\quad\quad if(i%j==0){
\quad\quad\quad flag=false;//如果这个数不是质数,标记为false
\quad\quad\quad break;
\quad\quad\quad }
\quad\quad\quad else flag=true;//是质数标记为true
\quad\quad\quad }
\quad\quad 4.最后对flag进行判定,为true则存入列表,count++;
\quad\quad方法实现:

\quad\quad 输出结果:100以内的质数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值