(Relax 数论1.11)POJ 1595 Prime Cuts(欧拉筛法: 输出1~n区间中中间的2C个素数)
2013-11-20 12:41
447 查看
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> /** * 2 2 3 17 2 2 3 29 2 2 5 37 */ using namespace std; const int maxn = 100002;//不要开得太大,否则可能MLE int su[maxn]; bool u[maxn]; int num = 0; void prepare() { int i, j; memset(u, true, sizeof(u)); for (i = 2; i <= 100001; ++i) { if (u[i]) { su[++num] = i; } for (j = 1; j <= num; ++j) { if (i * su[j] > 100001) { break; } u[i * su[j]] = false; if (i % su[j] == 0) { break; } } } } int main() { prepare(); int n, c; int pri[maxn]; while (scanf("%d%d", &n, &c) != EOF) { int i; int j = 1; memset(pri, 0, sizeof(pri)); for (i = 1; i <= n; ++i) { if (u[i]) { pri[j++] = i; } } printf("%d %d:",n,c); int nm = 0; if (c * 2 > j) {//如果要求输出的素数的个数>[1,n]内所拥有的素数的个数 for (i = 1; i < j; ++i) {//全部输出 printf(" %d", pri[i]); } printf("\n\n"); } else {//****否则根据要求输出中间的规定个数的素数 if (j % 2 == 0) { int pos = (j - 2 * c) / 2;//打印中间的2C-1个元素 for (i = pos + 1;; ++i) { nm++; if (nm > (2 * c - 1)) { break; } if (pri[i] != 0) {//**这个判断其实可以没有.... printf(" %d", pri[i]); } } printf("\n\n"); } else { int pos = (j - 2 * c) / 2; for (i = pos + 1;; ++i) { nm++; if (nm > (2 * c)) { break; } if (pri[i] != 0) { printf(" %d", pri[i]); } } printf("\n\n"); } } } return 0; }
相关文章推荐
- (Relax 数论1.13)POJ 2909 Goldbach's Conjecture(欧拉筛法的应用:给出一个偶数,要求在这个偶数的范围内,有几对素数和是等于这个偶数的,注意素数对的不重复性! )
- POJ 1595 Prime Cuts(我的水题之路——素数取中间区域,准确定位)
- (Relax 数论1.14)POJ 26889 Prime Distance(区间筛素数:求一个区间L\U中距离最近的两个素数和距离最远的两个素数)
- POJ 1595 Prime Cuts(素数切)
- POJ Goldbach's Conjecture(素数筛~欧拉筛法)
- POJ1595_Prime Cuts【素数】【水题】
- poj 2689 Prime Distance 筛法/二次筛法/区间素数
- (Relax 数论1.16)POJ 2992 Divisors(C[N][K]中含素数的个数)
- POJ 1595 && HDU 1319 Prime Cuts(数论)
- POJ 1595 Prime Cuts (ZOJ 1312) 素数打表
- POJ 1595 Prime Cuts (ZOJ 1312) 素数打表
- POJ 2689 Prime Distance(素数区间筛法--经典题)
- POJ 2689 Prime Distance【大区间素数筛选】【埃氏筛法】【经典题】
- POJ 1595 素数的筛选输出问题
- poj1595 Prime Cuts (素数筛选)
- POJ 1595 Prime Cuts 简单素数打表
- POJ1595_Prime Cuts【素数】【水题】
- POJ 1595 Prime Cuts 简单素数打表
- poj 2689 Prime Distance 筛法+区间筛素数
- POJ 2689 Prime Distance [筛法选取素数]【数论】