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