(大素数2.1.2.1)UVA 10871 Primed Subsequence(欧拉筛法)
2013-10-16 10:33
555 查看
/* * UVA_10871.cpp * * Created on: 2013年10月7日 * Author: Administrator */ #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn = 10011; bool u[maxn]; int su[maxn]; int num = 0; void prepare() { int i, j; memset(u, true, sizeof(u)); for (i = 2; i < maxn; ++i) { if (u[i]) { su[++num] = i; } for (j = 1; j <= num; ++j) { if (i * su[j] > maxn) { break; } u[i * su[j]] = false; if (i % su[j] == 0) { break; } } } } bool pri(int x) { if (x <= 10010) { return u[x]; } int i; for (i = 1; i <= num; ++i) { if (x % su[i] == 0) { return false; break; } } return true; } int main() { prepare(); int t; scanf("%d", &t); while (t--) { int n; scanf("%d", &n); int i, j; int s[n + 1]; s[0] = 0; for (i = 1; i <= n; ++i) { scanf("%d", &s[i]); s[i] += s[i - 1]; } bool ok = false; for (i = 2; i <= n; ++i) { for (j = 1; j + i - 1 <= n; ++j) { int k = s[i + j - 1] - s[j - 1]; if (pri(k)) { ok = true; printf("Shortest primed subsequence is length %d:", i); for (k = 1; k <= i; ++k) { printf(" %d", s[j + k - 1] - s[j + k - 2]); } printf("\n"); break; } } if (ok) { break; } } if (!ok) { printf("This sequence is anti-primed.\n"); } } return 0; }
相关文章推荐
- (数论2.1.2)UVA 10168 Summation of Four Primes(欧拉筛法)
- UVA - 10820 Send a Table(欧拉筛法)
- 使用欧拉筛法求素数和
- 筛素数-欧拉筛法模板
- 素数筛总结篇___Eratosthenes筛法和欧拉筛法(*【模板】使用 )
- UVa 1644 - Prime Gap(筛法选素数)
- 欧拉筛法求素数
- 线性筛法(欧拉筛法)求素数
- 埃拉托斯特尼筛法 VS 欧拉筛法 (素数筛选) Java
- 素数筛(埃式筛法/欧拉筛法)
- 欧拉线性筛法求素数 学习报告
- 快速求素数表——埃氏筛法与欧拉筛法
- Uva 10820 Send a Table(数论、欧拉筛法)
- 线性筛法(欧拉筛法)求素数
- (Relax 数论1.13)POJ 2909 Goldbach's Conjecture(欧拉筛法的应用:给出一个偶数,要求在这个偶数的范围内,有几对素数和是等于这个偶数的,注意素数对的不重复性! )
- 线性筛素数的欧拉筛法
- poj2262 Goldbach's Conjecture 素数的欧拉筛法
- POJ Goldbach's Conjecture(素数筛~欧拉筛法)
- 快速求素数表——埃氏筛法与欧拉筛法
- (Relax 数论1.11)POJ 1595 Prime Cuts(欧拉筛法: 输出1~n区间中中间的2C个素数)