思路:用筛选法求出n内所有素数
#include <iostream> using namespace std; const int range = 100000; bool IsPrime[range + 1]; void set(bool IsPrime[],int range) { int i, j; for (i = 0; i <= range; ++i) IsPrime[i] = true; IsPrime[0] = IsPrime[1] = false; for (i = 2; i <= range; ++i) { if (IsPrime[i]) { for (j = 2 * i; j <= range; j += i) IsPrime[j] = false; } } } int main() { int n; int ct = 0;
cin >> n; set(IsPrime, n); for (int i = 0; i < n; ++i){ if (IsPrime[i] && IsPrime[i + 2]) ++ct; } cout << ct << endl; }