#include<iostream>
using namespace std;
int q[100002] = { 0 };
//筛选法
void find(int num)
{
q[0] = 1;
q[1] = 1;
for (int i = 2; i <= num; ++i)
{
if(q[i] == 1)
continue;
//筛选出当前数字i的倍数
for (int j = 2*i; j <= num; j=j+i)
q[j] = 1;
}
}
//q[]为0的位置数就是质数
void show(int num)
{
int ag = 0, ans = 0;//again,answer
for (int i = 2; i <= num; ++i)
if (q[i] == 0)
q[ag++] = i;//再利用一次q存放质数
for (int i = 0; i < ag; ++i)
if (q[i + 1] - q[i] == 2)
++ans;
cout << ans;
}
int main()
{
int num = 0;
cin >> num;
find(num);
show(num);
system("pause");
return 0;
}
B1007
最新推荐文章于 2022-01-01 12:26:43 发布