素数筛选法输出指定范围内的所有素数
2017-03-19 15:05
267 查看
package com.easy; import java.util.Arrays; //import java.util.Scanner; /* * 筛选法求素数 */ public class IsPrime { /* * from ~ to 是范围 */ public static boolean[] printPrime(int from, int to) { /* * 定义一个boolean类型的数组,长度为to+1; */ boolean[] isPrime = new boolean[to + 1]; isPrime[1] = false; isPrime[0] = false; Arrays.fill(isPrime, 2, to + 1, true); // 从2开始计算,因为2是最小的素数,如果按from开始计算,from=5,下一个就是5*6,这样做会不能便利到所有的情况 for (int i = 2; i <= to; i++) { if (isPrime[i]) { /* * 求2-10,现将2的倍数置为false,再将3的倍数置为false */ for (int j = i; j * i <= to; j++) { isPrime[j * i] = false; } } } return isPrime; } public static int fun( int from, int to) { // 个数 int count = 0; boolean[] isPrime = printPrime(from, to); for (int i = from; i <= to; i++) { if (isPrime[i] == true) { count++; System.out.print(i + " "); } } return count; } public static void main(String[] args) { System.out.println(fun(5, 20)); } }
相关文章推荐
- 快速输出指定范围所有素数
- 输出指定范围内的素数
- 输出指定范围内的素数并验证一定范围内的歌德巴赫猜想
- Python 输出指定范围内的素数
- C++程序设计实践指导1.8求指定范围内的所有素数改写要求实现
- c++ 依次存放在指定范围内求出的所有素数
- 初学python:输出指定范围内的素数,范围由键盘输入
- 输出指定日期范围内,为"星期一"的所有日期
- 建立一个类PrimeNUM,求指定数据范围内的所有素数(质数)。具体要求如下:
- 筛选法输出100以内的所有素数
- 编写程序实现求1~500以内的所有素数,同时指定每行输出5个素数。(C++)
- 输出指定范围内的所有质数
- 用c++建立一个类PrimeNUM,求指定数据范围内的所有素数(质数)。
- 求指定范围内的所有素数
- 求出100以内的所有素数--筛选法和根号法
- 将指定日期所在月份的所有日期按照周次输出
- 求出1-100之间所有的素数(只能被1和它本身整除),要求每5个换行输出。
- java和c++语言编程的异同之输出制定范围内的素数
- 使用BitSet查找某个范围内的所有的素数的个数(摘自java核心技术.卷I)
- 如何提高筛选法求大范围素数的效率