JAVA求素数

什么是素数
质数(素数)是指在大于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个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值