POJ 3006解题报告
来源:互联网 发布:mysql 长整型 编辑:程序博客网 时间:2024/05/18 11:26
自从开始做POJ后我对1 million就没有恐惧感了,直接分配个这么大的空间来存储素数表。感觉空间换时间是个主旋律。
素数表的生成用素数筛选法(小学竞赛学到的)很快。方法是从2开始,对每个目前还标记为素数的数(初始情况下每个数都标记为素数),把它的所有倍数都标记为非素数。这些扫描过去后,一直没被标记的(即保持为素数的)就是所有的素数。
之后的事情就比较简单了,对等差序列中的每个数一个个去查预先生成的素数表,一直数到第n个素数输出即可。用时32ms。
代码如下:
#include <iostream>using namespace std;const int MAX = 1000000;bool primes[MAX];int main(){memset(primes, true, MAX);primes[1] = false;for(int i = 2; i < MAX; ++i){if(primes[i]){for(int j = 2; i * j < MAX; ++j){primes[i * j] = false;}}}/*for(int i = 2; i < 1000; ++i){if(primes[i])cout<<i<<"\t";}cout<<endl;*/int a0, d, n;while(true){cin>>a0>>d>>n;if(!a0 && !d && !n)return 0;int cnt = 0;while(true){if(primes[a0]){cnt++;if(cnt == n){break;}}a0 += d;}cout<<a0<<endl;}return 0;}
- POJ 3006解题报告
- POJ 3006 解题报告
- poj数百篇解题报告
- poj 1141解题报告
- poj 1001解题报告
- poj 1011 解题报告
- poj 1087 解题报告
- poj 2153解题报告
- poj 2051解题报告
- POJ 1167 解题报告
- poj 1026 解题报告
- POJ 1077 解题报告
- POJ 1042 解题报告
- POJ 1095 解题报告
- POJ 1159解题报告
- poj 2312解题报告
- POJ 1001解题报告
- POJ 1002解题报告
- sqlserver/oracle update set from 写法 .
- Flex树的实例
- Android应用开发揭秘的第26个程序12_2_openglcolor修改版和高仿版的源码注释
- 【web】赵雅智_Filter常见应用
- 在nand boot中自己实现printf
- POJ 3006解题报告
- UBUNTU安装PHP apache mysql phpmyadmin
- fopen C++
- xml中标签、标记与元素的比较
- 操作系统真实的虚拟内存是什么样的(一)
- PHP 调用shell 脚本 报错 /sbin/nologin
- Guice学习(一)
- 4歌星大奖赛
- Filter进行登录验证时循环重定向的解决方法