题目理解:
对于给定N,在不超过N里,若两个相邻素数的差等于2,则为统计目标,统计目标变量count自加1;
代码如下,提交使用g++
#include<bits/stdc++.h>
using namespace std;
bool isPrime(int num) //判断是否为素数
{
for(int i=2; i<=sqrt(num); i++)
{
if(num%i==0)
return false;
}
return true;
}
int main()
{
int n, count=0, tmp=1;
scanf("%d", &n);
for(int i=1; i<=n; i++) //枚举到N
{
if(isPrime(i))
{
if(i-tmp==2) //是素数且与前一个素数差为2,统计目标变量加1;
{
count++;
}
tmp = i; //tmp更新为最近一个素数,为下一次判断准备;
}
}
printf("%d", count);
}