Java求质数(素数)

作者: 虹猫日志 | 来源:发表于2019-10-03 21:45 被阅读0次

    需求:給定一个数字n,返回1到n之间的质数(素数)个数,不包括n本身。
    * 质数又被称为素数,是指一个大于1的自然数,除了1和它自身外,不能被其它自然数整除。
    * 例如:n = 5 ,返回2,因为1-5之间的质数为:2和3。

    public static void main(String[] args) {
        System.out.println( getSum( 5 ) );
    }
    
    private static Integer getSum(int n) {
        //存放质数的集合
        List<Integer> arr = new ArrayList<>();
        for (int i = 2; i < n; i++) {
            if (isPrimeNumber( i )) {
                arr.add( i );
            }
        }
        //打印质数
        System.out.println( arr );
        //返回集合长度(质数个数)
        return arr.size();
    }
    /**
     * 判断是否为质素
     *
     * @param i 待判断的最大数值
     * @return 是返回真,否假
     */
    private static boolean isPrimeNumber(int i) {
        for (int j = 2; j < i; j++) {
            if (i % j == 0) {
                return false;
            }
        }
        return true;
    }
    
    运行结果:
    image.png

    相关文章

      网友评论

        本文标题:Java求质数(素数)

        本文链接:https://www.haomeiwen.com/subject/gvcjpctx.html