Untitled
unknown
plain_text
a year ago
1.3 kB
4
Indexable
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n; ll cnt;
bool p[10000001]; // 1e7 + 1
void sieve()
{
for(int i = 2; i <= 10000000; i++) p[i] = true;
p[0] = p[1] = false;
int can = sqrt(10000000);
for(int i = 2; i <= can; i++)
{
if(p[i])
{
for(int j = i*i; j <= 10000000; j+=i)
p[j] = false;
}
}
}
void inp()
{
cin >> n;
}
void sub1()
{
cnt = 0;
for(int x = 1; x <= n; x++)
{
for(int y = 1; y <= n; y++)
{
if(p[x+2*y]) ++cnt;
}
}
}
void sub2()
{
cnt = 0;
vector<int> v;
for(int i = 2; i <= 10000000; i++) if(p[i]) v.push_back(i);
for(int y = 1; y <= n; y++)
{
int l = 1 + 2*y, r = n + 2*y;
auto itl = lower_bound(v.begin(), v.end(), l);
auto itr = upper_bound(v.begin(), v.end(), r);
int le = itl - v.begin();
int ri = itr - v.begin() - 1;
cnt += ri - le + 1;
}
}
void sol()
{
sieve();
//sub1();
//cout << cnt << '\n';
sub2();
cout << cnt << '\n';
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
freopen("BIEUTHUCNT.inp","r",stdin);
freopen("BIEUTHUCNT.out","w",stdout);
inp();
sol();
return 0;
}Editor is loading...
Leave a Comment