PAT乙级1007素数对猜想 20(分)

题目

让我们定义 d n d_n d ? n ? ? 为: d n = p n + 1 ? p n d_n = p_{n+1}-p_n d ? n ? ? = p ? n + 1 ? ? ? p ? n ? ? ,其中 p i p_i p ? i ? ? 是第 i i i 个素数。显然有 d 1 = 1 d_1 = 1 d ? 1 ? ? = 1 ,且对于 n > 1 n>1 n > 1 d n d_n d ? n ? ? 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。

现给定任意正整数 N ( < 1 0 5 <10^5 < 1 0 ? 5 ? ? ),请计算不超过 N 的满足猜想的素数对的个数。

输入格式:

输入在一行给出正整数 N

输出格式:

在一行中输出不超过 N 的满足猜想的素数对的个数。

输入样例:

20

输出样例:

4

代码

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
	int i,j, n,sum=0;
	cin >> n;
	int* a = new int[n+1];
	if(n>1)
		a[1] = 0;
	for (i = 2; i < n + 1; i++)
		a[i] = 1;
	for (i = 2; i < n + 1; i++)
		for (j = 2; j <= sqrt(i); j++)
			if (i % j == 0)
			{
				a[i] = 0;
				break;
			}
	for (i = 3; i < n + 1; i++)
		if (a[i] == 1 && a[i - 2] == 1)
			sum++;
	cout << sum;
	return 0;
}

题目详情链接

发布了104 篇原创文章 · 获赞 0 · 访问量 2885

猜你喜欢

转载自blog.csdn.net/qq_41985293/article/details/105220129
今日推荐