poj1595 水题
2013-07-23 15:25
155 查看
题意:输入n, 和c
统计1 - n 有多少个素数为cnt
若 2*c > cnt 则将素数全部输出
否则分支判断:
若cnt 为偶数,则从中心开始输出2*c 个
若cnt 为奇数,则从中心开始输出2*c-1个
View Code
统计1 - n 有多少个素数为cnt
若 2*c > cnt 则将素数全部输出
否则分支判断:
若cnt 为偶数,则从中心开始输出2*c 个
若cnt 为奇数,则从中心开始输出2*c-1个
/* 题意:输入n, 和c 统计1 - n 有多少个素数为cnt 若 2*c > cnt 则将素数全部输出 否则分支判断: 若cnt 为偶数,则从中心开始输出2*c 个 若cnt 为奇数,则从中心开始输出2*c-1个 */ #include <iostream> using namespace std; bool prm[1005]; //全局为false void Prime() { int i, t; prm[1] = false; for (i=2; i<1005; i++) { if (!prm[i]) { t = i<<1; while (t<1005) { prm[t] = true; t+= i; } } } } int main() { int n, c, i, j, cnt; Prime(); while (cin>>n>>c) { cout<<n<<" "<<c<<":"; for (i=1, cnt=0; i<=n; i++) { if (!prm[i]) cnt++; } //for (i=1; i<=n; i++) // if (!prm[i]) // cout<<i<<" "; // cout<<endl; if (2*c > cnt) { for (i=1; i<=n; i++) if (!prm[i]) cout<<" "<<i; cout<<endl; /*continue;*/ } else { if (cnt % 2 == 0) { for (j=1, i=1; j<(cnt-2*c)/2+1;i++) { if (!prm[i]) j++; } for (j=0; j<2*c; i++) if (!prm[i]) { j++; cout<<" "<<i; } cout<<endl; } else { for (j=1, i=1; j<(cnt-2*c+1)/2+1;i++) { if (!prm[i]) j++; } for (j=1; j<2*c; i++) if (!prm[i]) { j++; cout<<" "<<i; } cout<<endl; } } cout<<endl; } return 0; }
View Code
相关文章推荐
- POJ1595_Prime Cuts【素数】【水题】
- POJ 1595 素数打表水题
- POJ 1595 素数打表水题
- POJ 1595 Prime Cuts(我的水题之路——素数取中间区域,准确定位)
- POJ1595_Prime Cuts【素数】【水题】
- POJ 1050 动态规划水题
- THE DRUNK JAILER - POJ 1218 水题
- poj 1873 The Fortified Forest 凸包+位运算枚举 world final 水题
- Poj1207 The 3n + 1 problem(水题(数据)+陷阱)
- POJ 3673 Cow Multiplication (水题)
- POJ-1128 拓扑排序水题
- POJ 1873 The Fortified Forest 二进制枚举 + 凸包 (final水题)
- poj 2105 IP Address(水题)
- poj 2386 深搜水题
- POJ 1922:Ride to School:水题练java
- poj1002 487-3279 ——水题
- poj1543 Perfect Cubes (搜索,水题)
- POJ-1861,Network,最小生成树水题,,注意题面输出有问题,不必理会~~
- poj 1328 贪心 水题
- Dirichlet's Theorem on Arithmetic Progressions (poj 3009 水题)