习题10-6 连续素数之和 UVa1210
2015-04-21 13:15
351 查看
1.解题思路:点击打开链接
2.解题思路:本题要求寻找连续个素数相加为n的个数。由于n的范围不大, 因此可以事先打表。计算好所有的连续和的个数,最后直接输出即可。
3.代码:
2.解题思路:本题要求寻找连续个素数相加为n的个数。由于n的范围不大, 因此可以事先打表。计算好所有的连续和的个数,最后直接输出即可。
3.代码:
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<string> #include<sstream> #include<set> #include<vector> #include<stack> #include<map> #include<queue> #include<deque> #include<cstdlib> #include<cstdio> #include<cstring> #include<cmath> #include<ctime> #include<functional> using namespace std; #define N 10000+5 int vis ; int d ; vector<int>primes; void init() { int m = sqrt(N); memset(vis, 0, sizeof(vis)); memset(d, 0, sizeof(d)); for (int i = 2; i < m; i++)if (!vis[i]) for (int j = i*i; j < N; j += i) vis[j] = 1; for (int i = 2; i < N;i++) if (!vis[i]) primes.push_back(i); int len = primes.size(); for (int i = 0; i < len; i++) { int sum = primes[i]; int j = i + 1; while (j < len&&sum < N) { d[sum]++; sum += primes[j]; j++; } } } int main() { //freopen("t.txt", "r", stdin); init(); int n; while (~scanf("%d", &n) && n) cout << d << endl; return 0; }
相关文章推荐
- 习题10-5 连续素数之和 uva 1210
- 习题10-6 UVA - 1210 Sum of Consecutive Prime Numbers 连续素数之和(滑动窗口)
- 连续素数之和(Uva 1210)
- UVa 1210 连续素数
- 习题10-5 不同素数之和 uva 1213
- 习题10-5 UVA - 1213 Sum of Different Primes 不同的素数之和(DP + 素数打表)
- Sum of Consecutive Prime Numbers UVA - 1210 连续素数之和
- UVa 1210 连续素数之和
- UVa 1210 - Sum of Consecutive Prime Numbers(素数+连续和)
- 习题10-4 素数间隔 UVa1644
- 习题10-4 UVA 1644 Prime Gap(素数打表+二分查找)
- 算法竞赛入门经典(第2版)习题4-10 洪水!UVa815
- 算法竞赛入门经典 第二版 习题4-10 洪水 Flooded uva815
- Uva11214 Guarding the Chessboard【dfs回溯】【习题7-10】
- 习题4-10 洪水 UVa815
- 习题10-39 UVA 11186 Circum Triangle圆周上的三角形
- 紫书搜索 习题7-10 UVA - 11214 Guarding the Chessboard 迭代加深搜索
- 习题10-7 几乎是素数 UVa10539
- 算法竞赛入门经典第四章习题4-10 Flooded! UVA - 815
- 习题8-10 UVA - 1614 Hell on the Markets 奇怪的股市(贪心)