Submission #45557094
Source Code Expand
#include <bits/stdc++.h>
namespace {
using Num = long long int;
}
void find_primes(std::vector<Num>& primes, std::vector<bool>& not_primes, Num upper) {
for(Num p{2}; (p*p)<=upper; ++p) {
if (not_primes.at(p)) {
continue;
}
for(Num i=p*2; i<=upper; i+=p) {
not_primes.at(i) = true;
}
}
for(Num p{2}; p<=upper; ++p) {
if (!not_primes.at(p)) {
primes.push_back(p);
}
}
}
void solve(std::istream& is, std::ostream& os) {
using Num = long long int;
Num n {0};
is >> n;
constexpr Num upper = 1000100LL;
std::vector<Num> primes;
std::vector<bool> not_primes(upper + 1, false);
find_primes(primes, not_primes, upper);
Num answer {0};
Num a_index {0};
for(;;) {
const Num a = primes.at(a_index);
if ((a * a * a * a * a) > n) {
break;
}
Num b_index = a_index + 1;
for(;;) {
const Num b = primes.at(b_index);
if ((a * a * b * b * b) > n) {
break;
}
const Num c_index = b_index + 1;
const Num lower = primes.at(c_index);
if ((a * a * b * lower * lower) > n) {
break;
}
Num c_upper = 288675;
while((a * a * b * c_upper * c_upper) > n) {
--c_upper;
}
auto it = std::upper_bound(primes.begin(), primes.end(), c_upper);
const auto d = std::max(0LL, (it - primes.begin()) - c_index);
answer += d;
if (d == 0) {
break;
}
++b_index;
}
++a_index;
}
os << answer << "\n";
return;
}
int main(void) {
solve(std::cin, std::cout);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - AABCC |
| User | zettsut |
| Language | C++ 20 (gcc 12.2) |
| Score | 400 |
| Code Size | 1899 Byte |
| Status | AC |
| Exec Time | 788 ms |
| Memory | 4472 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| All | sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 6 ms | 4224 KiB |
| sample_02.txt | AC | 787 ms | 4224 KiB |
| test_01.txt | AC | 5 ms | 4268 KiB |
| test_02.txt | AC | 11 ms | 4332 KiB |
| test_03.txt | AC | 77 ms | 4288 KiB |
| test_04.txt | AC | 788 ms | 4280 KiB |
| test_05.txt | AC | 787 ms | 4320 KiB |
| test_06.txt | AC | 184 ms | 4340 KiB |
| test_07.txt | AC | 683 ms | 4380 KiB |
| test_08.txt | AC | 36 ms | 4328 KiB |
| test_09.txt | AC | 777 ms | 4284 KiB |
| test_10.txt | AC | 718 ms | 4340 KiB |
| test_11.txt | AC | 210 ms | 4240 KiB |
| test_12.txt | AC | 502 ms | 4256 KiB |
| test_13.txt | AC | 444 ms | 4264 KiB |
| test_14.txt | AC | 578 ms | 4472 KiB |
| test_15.txt | AC | 687 ms | 4312 KiB |