数学知识 筛质数

该博客介绍了如何使用不同的筛法(朴素筛法、埃氏筛法、线性筛法)来找出1到n之间的质数个数,强调了算法的时间复杂度,并解释了唯一分解定理在筛选质数过程中的作用。
摘要由CSDN通过智能技术生成

筛质数

给定一个正整数 n,请你求出 1∼n 中质数的个数。

输入格式
共一行,包含整数 n

输出格式
共一行,包含一个整数,表示 1∼n 中质数的个数。

数据范围
1≤ n ≤106
输入样例:

8

输出样例:

4

筛选n以内的质数:

朴素筛法:O(nlogn)
i2 开始遍历,把 n 以内所有 i 的倍数全部筛选掉,剩下的数就是质数。

void get_primes(int n)
{
   
    for(int i=2;i<=n;i++) //p存放已经找到的质数,cnt记录已经找到的质数的数量
    {
   
        if(!st[i]) p[cnt++]=i;//把质数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值