AC 250, tried atcoder virtual contest, wasn't even half bad

This commit is contained in:
2022-05-10 15:19:23 +02:00
parent dd43fcc0c5
commit 6de6e057ae
8 changed files with 298 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
vector<ull> primes(ull maxPrime){
vector<bool> p(maxPrime + 1, true);
for(ull i = 2; i <= sqrt(maxPrime + 1); ++i){
if(p[i]){
for(ull j = i * 2; j < maxPrime + 1; j += i){
p[j] = false;
}
}
}
vector<ull> result;
for(ull i = 2; i < maxPrime + 1; ++i){
if(p[i]){
result.push_back(i);
}
}
return result;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
ull n;
cin >> n;
ull topPrime = ceil(cbrt(ceil(n / 2)));
auto ps = primes(topPrime);
ull result = 0;
if(ps.size() < 2){
cout << result << endl;
cout << flush;
return 0;
}
for(size_t i = 1; i < ps.size(); ++i){
ull q = ps[i];
for(size_t j = 0; j < i; ++j){
ull p = ps[j];
ull k = p * q * q * q;
if(k > n){
break;
}
result++;
}
}
cout << result << endl;
cout << flush;
return 0;
}