JAVA经典算法之求素数

帅比萌擦擦* 提交于 2020-01-13 16:51:14

什么是素数
质数(素数)是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

计算原理:
在一个大于1的数a和它的2倍之间(即区间(a, 2a]中)必存在至少一个素数。

java代码 :

package com.skindow.algorithm.calculationPrimeNumber;

/**
 * @ Description   :求n ~ m数之间素数得个数,并输出这些素数
 * @ Author        :  skindow
 * @ CreateDate    :  2020/1/13$ 14:49$
 */
public class CalculationPrimeNumber {
    private static final Integer START_NUM = 100;

    private static final Integer END_NUM = 200;

    private static Integer PRIME_NUM = 0;
    public static void main(String[] args){
        for (int i = START_NUM;i<END_NUM;i++){
            if (isPrime((double) i)){
                System.out.print(i + ",");
                PRIME_NUM ++;
                if (PRIME_NUM % 10 == 0){
                    System.out.println();
                }
            }
        }
        System.out.println();
        System.out.println(String.format("%d到%d之间共有素数%d个",START_NUM,END_NUM,PRIME_NUM));
    }
    //定义一个方法来计算该值是否为素数
    private static Boolean isPrime(Double num){
        double sqrt = Math.sqrt(num);
        for (int i = 2; i <= sqrt; i ++){
            if (num % i == 0){
                return false;
            }
        }
        return true;
    }
}

输出效果

101,103,107,109,113,127,131,137,139,149,
151,157,163,167,173,179,181,191,193,197,
199,
100到200之间共有素数21个

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!