Submission #18225050
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
vector<bool> calc_prime(const int ub)
{
vector<bool> is_prime(ub + 1, true);
is_prime.at(0) = is_prime.at(1) = false;
for (int i = 2; i < ub + 1; ++i) {
if (!is_prime.at(i))
continue;
for (int j = 2 * i; j < ub + 1; j += i)
is_prime.at(j) = false;
}
return is_prime;
}
vector<int> calc_sim2017(const int ub)
{
auto is_prime = calc_prime(ub);
vector<int> sim2017(ub + 1, 0);
for (int N = 3; N < ub + 1; N += 2) { // 2017に似た数は奇数
if (is_prime.at(N) && is_prime.at((N + 1) / 2))
sim2017.at(N) = 1;
}
return sim2017;
}
int main()
{
static const int ub = 1e+5;
auto sim2017 = calc_sim2017(ub);
vector<int> cumcnt(ub + 2, 0);
for (int i = 0; i < ub + 1; ++i)
cumcnt.at(i + 1) = cumcnt.at(i) + sim2017.at(i);
int Q;
cin >> Q;
for (int i = 0; i < Q; ++i) {
int l, r;
cin >> l >> r;
cout << cumcnt.at(r + 1) - cumcnt.at(l) << endl;
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - 2017-like Number |
| User | atug |
| Language | C++ (GCC 9.2.1) |
| Score | 400 |
| Code Size | 1053 Byte |
| Status | AC |
| Exec Time | 191 ms |
| Memory | 3856 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, sample_03.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, sample_01.txt, sample_02.txt, sample_03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01.txt | AC | 191 ms | 3788 KiB |
| 02.txt | AC | 188 ms | 3772 KiB |
| 03.txt | AC | 184 ms | 3772 KiB |
| 04.txt | AC | 183 ms | 3756 KiB |
| 05.txt | AC | 175 ms | 3856 KiB |
| 06.txt | AC | 183 ms | 3676 KiB |
| 07.txt | AC | 184 ms | 3752 KiB |
| sample_01.txt | AC | 7 ms | 3680 KiB |
| sample_02.txt | AC | 7 ms | 3720 KiB |
| sample_03.txt | AC | 5 ms | 3720 KiB |