Basic Level 1007. 素数对猜想 (20)
2014-03-20 17:14
281 查看
让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:
输出样例:
现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。
输入格式:每个测试输入包含1个测试用例,给出正整数N。
输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
C++
#include <functional> #include <algorithm> #include <cstdio> #include <vector> using namespace std; int Prime[1000000]={0}; bool Sign[1000000] ={false}; int BuildPrime(int limit){ int pos=0; for(int i = 2;i<=limit;++i){ if(!Sign[i]) Prime[pos++] = i; for(int j = 2*i;j<=limit;j+=i){ Sign[j] = true; } } return pos; } int main() { int N; scanf("%d",&N); int sum = 0; int num = BuildPrime(N); for(int i=1;i<num;++i){ sum+=(Prime[i]==Prime[i-1]+2)?1:0; } printf("%d\n",sum); return 0; }
Python
def Prime(max_n): sign = [True] * (max_n+1) arr = [] for i in xrange(2, max_n+1): if sign[i]:arr.append(i) for j in xrange(i*2,max_n+1,i): sign[j] = False return arr arr = Prime(int(raw_input())) sum = 0 for i in xrange(1,len(arr)): if arr[i] == arr[i-1]+2:sum = sum +1 print sum
相关文章推荐
- 1007. 素数对猜想 (20)-PAT乙级
- 1007. 素数对猜想 (20) python篇
- 1007. 素数对猜想 (20)
- PAT_1007. 素数对猜想 (20)
- PAT (Basic Level) Practise (中文)1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)
- PAT 1007. 素数对猜想 (20)
- PAT乙级1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)
- PAT (Basic Level) Practise (中文) 1007素数对猜想 (20)
- 1007. 素数对猜想 (20)
- PAT(乙) 1007. 素数对猜想 (20)
- PAT 1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)
- PAT乙级 1007. 素数对猜想 (20)
- 1007. 素数对猜想 (20)