求素数 sdut oj 1468(欧拉筛)
来源:互联网 发布:淘宝店铺严重违规48分 编辑:程序博客网 时间:2024/06/07 17:46
求素数
Time Limit: 100ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
求小于n的所有素数的数量。
输入
多组输入,输入整数n(n<1000000),以0结束。
输出
输出n以内所有素数的个数。
示例输入
100
示例输出
4
///wa了好久的题0.0 今天突然想起来了0.0 不能直接求素数的个数 会超时
///首先需要预处理,利用欧拉筛原理预处理 bool 数组保存是否为素数 最后遍历加和输出素数的个数
///Accode
#include <iostream>#include <cmath>using namespace std;const int maxn = 1000010;int prime[maxn];bool vis[maxn] = {0}; ///vis[]=0 是素数void Oula_prime(){int i,j;int k = sqrt(maxn+1); ///开方处理for(i=2;i<=k;i++){if(vis[i] == 0){for(j=i;i*j<=maxn;j++){vis[i*j] = 1;}}}int sum = 0;for(i=2;i<=maxn;i++){if(vis[i] == 0){ sum++;}prime[i] = sum;}}int main(){int n;Oula_prime();while(cin>>n&&n){cout<<prime[n]<<endl;}return 0;}
///更新于17/1/15
进一步降低了欧拉筛的时间复杂度O(nlogn)
2 0
- 求素数 sdut oj 1468(欧拉筛)
- 求素数 SDUT 1468
- 求素数 SDUT 1468
- OJ 1468 求素数(素数筛)
- SDUT 求素数
- 完美的素数 (sdut oj)
- C/C++练习7---求某个范围内的所有素数 (sdut oj)
- 求绝对值最大值 (sdut oj)
- 求三角形面积 (sdut oj)
- sdut oj 2404 super prime(素数筛)
- 求二叉树深度 (sdut oj 2804)
- 求数列的和 (sdut oj)
- C语言实验——判断素数(循环结构)(sdut oj)
- C语言实验——素数 (sdut oj)
- C语言实验——求绝对值(选择结构)(sdut oj)
- C语言实验——求阶乘(循环结构) (sdut oj)
- 求素数(筛法求素数)
- SDUT 1122 判断素数(循环结构)
- NOI2016 D类老年选手滚粗记
- C# 控制台捕获关闭事件的代码
- iOS 把UILabel的text设置成斜体
- 代码适配Masonry使用的详细介绍
- sublime里调整ecshop里dwt,lbi文件高亮显示代码
- 求素数 sdut oj 1468(欧拉筛)
- Session监听在线统计人数,简单的单点登录
- Java常见类
- VS2013未找到与约束Microsoft.VisualStudio.Utilities.IContentTypeRegistryService匹配的导出
- leetCode_Reverse Words in a String
- 中文乱码之最不易发觉的中文乱码!
- Jprofiler监控JVM性能
- [官翻] 隐藏状态栏
- MySQL优化之四--Mysql基准测试工具(mysqlslap、sysbench)