poj1595 prime cuts(快速筛选)
来源:互联网 发布:收入影响因素数据图表 编辑:程序博客网 时间:2024/06/04 23:33
题意: 给定一个数字N,将1到N中的所有质数按照中心值为c的规定输出,规则详见题目。
本题不难,但是要注意这里1也算是素数列中的一员。其它的都是小事儿啦,用快速筛选找到1--1000内所有的素数和合数。然后A了。
#include <iostream>#include<cstdio>using namespace std;bool notpri[1001];int prime[1001],cnt=0;void getprime(){ //快速筛选。 int i,j; prime[++cnt]=1; for(i=2;i<=1000;i++){ if(!notpri[i])prime[++cnt]=i; for(j=2;j<=cnt&&prime[j]*i<=1000;j++){ notpri[prime[j]*i]=1; if(i%prime[j]==0)break; } }}int prisum[1001]; //记录前N个数字里有多少个素数。void stat(){ int t=2; prisum[1]=1; prisum[2]=2; // 1 is a primer for(int i=3;i<=1000;i++){ if(!notpri[i])t++; prisum[i]=t; }}int main(){ getprime(); stat(); int N,C; while(~scanf("%d%d",&N,&C)){ int sum,i; //cout<<prisum[N]<<endl; if(prisum[N]%2)sum=2*C-1; else sum=2*C; printf("%d %d: ",N,C); if(sum>=prisum[N]) for(i=1;i<=prisum[N];i++){ printf("%d ",prime[i]); } else { int start=(prisum[N]-sum)/2+1; //设置print的起点 for(i=start;i<start+sum;i++){ printf("%d ",prime[i]); } } printf("\n\n"); } return 0;}
0 0
- poj1595 prime cuts(快速筛选)
- poj1595 Prime Cuts (素数筛选)
- 【筛法打表】poj1595 Prime Cuts
- Prime Cuts(poj1595)
- poj1595-Prime Cuts
- POJ1595 Prime Cuts [暴力打表]
- prime cuts
- Prime Cuts
- Prime Cuts
- HDU1319---Prime Cuts HDU(111)
- HDU 1319 Prime Cuts(素数。。。)
- poj 1595 Prime Cuts(素数问题)
- POJ 1595 Prime Cuts(素数切)
- zoj1312 Prime Cuts
- fjnu 1848 Prime Cuts
- JOJ1148:Prime Cuts
- HDU 1319 Prime Cuts
- poj 1595 Prime Cuts
- test csdn markdown
- Five Popular Myths about C++
- Ubuntu Linux下SDL2安装
- C++静态成员(1) - 静态成员函数的特性
- 一起talk Vim吧(第二十回:Vim插件之NerdTree)
- poj1595 prime cuts(快速筛选)
- C++语言基础 例程 C++的输入输出与流对象
- C++语言基础 例程 标准输出流
- Php link to MySQL
- C++语言基础 例程 标准输入流
- C++语言基础 例程 文本文件的读写
- C++语言基础 例程 二进制文件及其顺序读写
- C++语言基础 例程 案例:bmp文件格式剖析
- C++语言基础 例程 文件的随机读写