【算法】求小于正整数N的质数的个数

统计200到300的之间质数

python版本


#求200到300的质数

#如果一个数字n不是质数,它可以被分解为两个因数。a和b; n=a*b, 这两个因数,要么相等,要么一个大于平方根一个小于平方根,
# 如果我们找不到任何小于或等于平方根的因数,n一定是一个质数

import time
def test():
    res=[]
    for i in range(200,301):
        if countPrimes(i):
            res.append(i)
    return res


def countPrimes(n):
    if n<0 or n==0 or n==1: return False
    m= int(n ** 0.5)

    for i in range(2,m):
        if n%i==0:
            return False

    return True

if __name__ == '__main__':
    print(test())


java版本

import java.util.ArrayList;

public class countprimes {

    public String test() {
        ArrayList<Integer> res = new ArrayList<>();
        for (int i = 200; i <= 300; i++) {
            if (count_primes(i)) {
                res.add(i);
            }
        }
        return res.toString();
    }

    public Boolean count_primes(int num) {
        if (num < 0 || num == 0 || num == 1) {
            return false;
        }
        int chushu = (int) Math.sqrt(num);
        for (int i = 2; i <= chushu; i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }

}

统计小于n的质数个数

java版本

public static int countPrimes(int n){
    int count=0;
    for (int i = 2; i < n; i++) {
        boolean flag=true;
        for (int j = 2; j <= Math.sqrt(i); j++) {
            if (i%j==0){
                flag=false;
                break;
            }
        }
        if (flag)
            count++;
    }
    return count;
}

参考链接:
https://blog.csdn.net/qq_40181007/article/details/86289833

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bug 挖掘机

支持洋子

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值