题目描述

求1,2,\cdots,N1,2,⋯,N 中素数的个数。

输入输出格式

输入格式:

1 个整数NN。

输出格式:

1 个整数,表示素数的个数。

输入输出样例

输入样例#1: 复制

10
输出样例#1: 复制

4

说明

• 对于40% 的数据,1 \le N \le 10^61≤N≤106;

• 对于80% 的数据,1 \le N \le 10^71≤N≤107;

• 对于100% 的数据,1 \le N \le 10^81≤N≤108。

思路:RE,线性筛一边就可以做出来。bool只占一个字节,所以不会MLE。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,tot;
int prime[];
bool yes[];
void shai(){
memset(yes,true,sizeof(yes));
yes[]=false;
for(int i=;i<=n;i++){
if(yes[i]) prime[++tot]=i;
for(int j=;i*prime[j]<=n;j++){
yes[i*prime[j]]=false;
if(i%prime[j]==) break;
}
}
}
int main(){
scanf("%d",&n);
shai();
cout<<tot;
}

把上面的代码多开一个0 就可以AC了。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,tot;
int prime[];
bool yes[];
void shai(){
memset(yes,true,sizeof(yes));
yes[]=false;
for(int i=;i<=n;i++){
if(yes[i]) prime[++tot]=i;
for(int j=;i*prime[j]<=n;j++){
yes[i*prime[j]]=false;
if(i%prime[j]==) break;
}
}
}
int main(){
scanf("%d",&n);
shai();
cout<<tot;
}

当然听说大佬用了一种叫Meissel Lehmer Algorithm的算法跑的飕飕的。对于我一个蒟蒻来说,这个算法太高级了,诸君还是自行学习吧。我在这里就不粘代码了。

洛谷 P3912 素数个数的更多相关文章

  1. 洛谷 P1835 素数密度

    https://www.luogu.org/problemnew/show/P1835 对于40%,对每个数进行最大$O(\sqrt n)$的判断,因为n比较大所以超时. 想到线性筛,然而我们并不能筛 ...

  2. [洛谷P1835]素数密度

    题目大意:求区间[l,r]中素数的个数($1\leq l,r\le 2^{31}$,$r-l\leq 10^6$). 解题思路:首先,用筛法筛出$2~\sqrt{r}$内的素数. 然后用这些素数筛l~ ...

  3. 洛谷P3327 约数个数和 结论+莫比乌斯反演

    原题 就是让你求\(\sum\limits_{i=1}\sum\limits_{j=1}d(ij)\)(其中\(d(x)\)表示\(x\)的因数个数) 首先有引理(然而并没有证明): \(d(ij)= ...

  4. 洛谷 [SDOI2015]约数个数和 解题报告

    [SDOI2015]约数个数和 题目描述 设\(d(x)\)为\(x\)的约数个数,给定\(N,M\),求$ \sum\limits^N_{i=1}\sum\limits^M_{j=1}d(ij)$ ...

  5. 【题解】洛谷P1463 [POI2002][HAOI2007] 反素数(约数个数公式+搜索)

    洛谷P1463:https://www.luogu.org/problemnew/show/P1463 思路 约数个数公式  ai为质因数分解的质数的指数 定理: 设m=2a1*3a2*...*pak ...

  6. 【数论】8.30题解-prime素数密度 洛谷p1835

    prime 洛谷p1835 题目描述 给定区间[L, R](L <= R <= 2147483647, R-L <= 1000000),请计算区间中 素数的个数. 输入输出 输入 两 ...

  7. [洛谷P2408]不同子串个数

    题目大意:给你一个字符串,求其中本质不同的字串的个数 题解:同[洛谷P4070][SDOI2016]生成魔咒,只要最后再输出就行了 卡点:无 C++ Code: #include <cstdio ...

  8. DP,数论————洛谷P4317 花神的数论题(求1~n二进制中1的个数和)

    玄学代码(是洛谷题解里的一位dalao小粉兔写的) //数位DP(二进制)计算出f[i]为恰好有i个的方案数. //答案为∏(i^f[i]),快速幂解决. #include<bits/stdc+ ...

  9. 求x!在k进制下后缀零的个数(洛谷月赛T1)

    求x!在k进制下后缀和的个数 20分:     求十进制下的x!后缀和的个数 40分: 高精求阶乘,直接模拟过程 (我不管反正我不打,本蒟蒻最讨厌高精了) 60分     利用一个定理(网上有求x!在 ...

随机推荐

  1. BA-通讯总线-百通1419a和9841

    百通1419A线缆的简单介绍: Belden1419A- Belden电缆线1419A 多股导体—低容计算机电缆 FOR EIA RS-232/422 Belden 1419A是24 AWG(7*32 ...

  2. rabbitMQ学习笔记(四) 发布/订阅消息

    前面都是一条消息只会被一个消费者处理. 如果要每个消费者都处理同一个消息,rabbitMq也提供了相应的方法. 在以前的程序中,不管是生产者端还是消费者端都必须知道一个指定的QueueName才能发送 ...

  3. Bridge模式

    Bridge模式 Bridge模式 在面向对象的开发过程中,要做到2点:1.高内聚(cohesion).2.松耦合(coupling).可是在实际开发过程中难以把握,比如会遇到这种问题: 1)客户给了 ...

  4. HDU 5078 Revenge of LIS II(dp LIS)

    Problem Description In computer science, the longest increasing subsequence problem is to find a sub ...

  5. android 分享到QQ空间的全部操作

    http://wiki.open.qq.com/wiki/mobile/SDK下载   <!-- QZone分享必须加上以下两个activity -->                &l ...

  6. 自己动手写CPU之第七阶段(6)——乘累加指令实现思路

    将陆续上传本人写的新书<自己动手写CPU>.今天是第29篇.我尽量每周四篇 亚马逊的销售地址例如以下,欢迎大家围观呵! http://www.amazon.cn/dp/b00mqkrlg8 ...

  7. VM网络连接设置具体解释

    參考http://zhidao.baidu.com/link? url=NU8UcLsp6CCgRZzeMgnb7v0p7Z78eLYloYW355Z9fQa__pm_lFBtpfSs61ZR2Wq2 ...

  8. SAN (Storage Attached Network),即存储区域网络

    NAS和SAN既竞争又合作,很多高端NAS的后端存储就是SAN.NAS和SAN的整合也是存储设备的发展趋势,比如EMC的新产品VNX系列. 关于NAS和SAN的区别,可以列出很多来.比如带宽大小,距离 ...

  9. WebService CXF学习:复杂对象传递(List,Map)

    转自:https://blog.csdn.net/z69183787/article/details/35988335 第一步:创建存储复杂对象的类(因为WebServices的复杂对象的传递,一定要 ...

  10. HTML5+Spring-MVC实现上传图片本地保存

    以下就是具体的代码: 1.在jsp页面中的代码: <span style="font-size:24px;"><form method="post&qu ...