結果
問題 |
No.1514 Squared Matching
|
ユーザー |
![]() |
提出日時 | 2025-07-07 12:13:05 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
MLE
|
実行時間 | - |
コード長 | 1,274 bytes |
コンパイル時間 | 3,300 ms |
コンパイル使用メモリ | 274,020 KB |
実行使用メモリ | 638,400 KB |
最終ジャッジ日時 | 2025-07-07 12:13:32 |
合計ジャッジ時間 | 20,513 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 MLE * 16 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define ll long long #define endl "\n" #define pb push_back #define ff first #define ss second #define ii pair<int, int> #define vi vector<int> #define vii vector<pair<int, int>> #define vvi vector<vi> #define mii map<int, int> #define rep(i, a, b) for (int i = a; i <= b; i++) #define _READ(name) freopen(name, "r", stdin) #define _WRITE(name) freopen(name, "w", stdout) int n; const int mx = 5e7; int d[50000005]; ll mp[50000005]; bool prime[50000005]; void Prepare() { cin >> n; } void ppc() { for (int i = 1; i <= mx; i++) { prime[i] = 1; d[i] = i; } prime[0] = prime[1] = 0; for (int i = 2; i * i <= mx; i++) { if (prime[i]) { for (int j = i*i; j*j <= mx; j += i) { prime[j] = 0; } for (int j = i*i; j <= mx; j += i*i) { while (d[j] % (i*i) == 0) d[j] /= (i*i); } } } } void COOOOK() { ppc(); for (int i = 1; i <= n; i++) { mp[d[i]]++; } ll ans = 0; rep(i, 1, n) { ans += (mp[i]*mp[i]); } cout << ans; } void Eat() { } void Wash() { } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int TEST = 1; while (TEST--) { Prepare(); COOOOK(); Eat(); Wash(); } return 0; }