求出指定范围内所有的质数
1.要求
在窗口输出指定范围内所有的质数,并对所有输出的质数个数进行计数。
2.质数
在所有比1大的整数中,除了1和它本身以外,不再有别的因数,这种整数叫做质数或素数。还可以说成质数只有1和它本身两个约数。
3.原理
具体做法是:先把N个自然数按次序排序起来。1不是质数,也不是合数,要划去。第二个数是质数留下来,而把2后面的所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都删掉,留下的就是不超过N的全部质数。
4.语法
- filterNumber()方法使用筛选法求传入参数值范围内的所有的质数。声明一个布尔类型的数组,数组元素的值为true时,表示该元素的下标为质数。如果number是一个质数,那么number的位数都不是质数,利用Array.fill()方法初始化布尔类型数组,然后利用循环将数组下标为number的倍数元素值设置为false。这样就能判断哪部分元素是质数了。
- ShowAppointArea()方法调用FilterNumber()方法,得到布尔类型数组,将值为true的元素的下标在控制台输出。
5.代码
import java.util.Arrays;
public class rw31 {
public static void main(String[] args) {
//JAVA主程序入口
// TODO Auto-generated method stub
int number=300; //对范围进行设置
System.out.println("范围在"+number+"内的