Submission #39448339
Source Code Expand
#line 1 "ABC254-D.test.cpp"
#define PROBLEM "https://onlinejudge.u-aizu.ac.jp/courses/lesson/2/ITP1/1/ITP1_1_A"
#line 2 "/home/zawatin/compro/library/src/math/linearSieve.hpp"
#include <vector>
#include <utility>
namespace zawa {
class linearSieve {
private:
std::vector<int> divs;
std::vector<int> primes;
public:
linearSieve() {}
linearSieve(std::size_t n) : divs(n + 1, 1) {
for (std::size_t i = 2 ; i < n + 1 ; i++) {
if (divs[i] == 1) {
divs[i] = i;
primes.push_back((int)i);
}
for (const auto& p : primes) {
if (p * i > n or p > divs[i]) {
break;
}
divs[p * i] = p;
}
}
}
std::vector<std::pair<int, int>> factorize(int x) {
std::vector res(0, std::pair(0, 0));
while (x > 1) {
res.emplace_back(divs[x], 0);
while (divs[x] == res.back().first) {
x /= divs[x];
res.back().second++;
}
}
return res;
}
std::vector<int> divisor(int x) {
std::vector res(1, 1);
for (const auto& [p, q] : factorize(x)) {
std::size_t now = res.size();
for (std::size_t i = 0 ; i < now ; i++) {
int mul = p;
for (int _ = 0 ; _ < q ; _++) {
res.emplace_back(res[i] * mul);
mul *= p;
}
}
}
return res;
}
std::vector<int> enumPrime() {
return primes;
}
int numPrime() {
return (int)primes.size();
}
bool isPrime(int x) {
return (x != 0 and x != 1 and divs[x] == x);
}
int operator[](int x) {
return divs[x];
}
};
}
#line 4 "ABC254-D.test.cpp"
#include <iostream>
int main() {
int N; std::cin >> N;
zawa::linearSieve siv(N);
std::vector<int> dp(N + 1, 1);
for (int i = 2 ; i < N + 1 ; i++) {
int lpf = siv[i];
dp[i] = dp[i / lpf];
if (dp[i] % lpf == 0) {
dp[i] /= lpf;
}
else {
dp[i] *= lpf;
}
}
std::vector bucket(N + 1, 0);
for (int i = 1 ; i < N + 1 ; i++) {
bucket[dp[i]]++;
}
long long ans = 0LL;
for (int i = 0 ; i < N + 1 ; i++) {
ans += (long long)bucket[i] * bucket[i];
}
std::cout << ans << std::endl;
// std::cout << "Hello World" << std::endl;
}
/*
* AtCoder Beginner Contest 254 - D Together Square
*/
Submission Info
| Submission Time | |
|---|---|
| Task | D - Together Square |
| User | zawatin |
| Language | C++ (GCC 9.2.1) |
| Score | 400 |
| Code Size | 2186 Byte |
| Status | AC |
| Exec Time | 12 ms |
| Memory | 5580 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example_00.txt, example_01.txt |
| All | example_00.txt, example_01.txt, test_00.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 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| example_00.txt | AC | 7 ms | 3400 KiB |
| example_01.txt | AC | 2 ms | 3500 KiB |
| test_00.txt | AC | 5 ms | 4056 KiB |
| test_01.txt | AC | 4 ms | 3624 KiB |
| test_02.txt | AC | 5 ms | 3800 KiB |
| test_03.txt | AC | 8 ms | 5460 KiB |
| test_04.txt | AC | 3 ms | 3720 KiB |
| test_05.txt | AC | 9 ms | 5428 KiB |
| test_06.txt | AC | 12 ms | 5576 KiB |
| test_07.txt | AC | 11 ms | 5508 KiB |
| test_08.txt | AC | 10 ms | 5576 KiB |
| test_09.txt | AC | 12 ms | 5528 KiB |
| test_10.txt | AC | 2 ms | 3568 KiB |
| test_11.txt | AC | 11 ms | 5580 KiB |