让我们定义dnd_ndn为:dn=pn+1−pnd_n = p_{n+1}-p_ndn=pn+1−pn,其中pip_ipi是第iii个素数。显然有d1=1d_1 = 1d1=1,且对于n>1n>1n>1有dnd_ndn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<105<10^5<105),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
#include <iostream>
#include <cmath>
//请计算不超过N的满足猜想的素数对的个数
using namespace std;
bool sushu(int a);
void sushu();
bool sushu(int a)
{
for (int i=2;i*i<=a;i++)
{
if (a%i==0)
return false;
}
return true;
}
void sushudui()
{
int n,p=0;
cin>>n;
for (int i=3;i<=n-2;i+=2)
{
if (sushu(i)&&sushu(i+2))
p++;
}
cout<<p;
}
int main()
{
sushudui();
return 0;
}
这道题也是比较简单了,陈老师数据结构课程的起步自测中用到了这个题目,几个月前写的,函数命名还用了拼音……