結果
問題 |
No.1514 Squared Matching
|
ユーザー |
![]() |
提出日時 | 2025-07-07 12:14:29 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 650 ms / 4,000 ms |
コード長 | 1,266 bytes |
コンパイル時間 | 2,914 ms |
コンパイル使用メモリ | 275,820 KB |
実行使用メモリ | 247,748 KB |
最終ジャッジ日時 | 2025-07-07 12:14:50 |
合計ジャッジ時間 | 18,709 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 26 |
ソースコード
#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(); ll ans = 0; for (int i = 1; i <= n; i++) { ans += (ll)(sqrt(n/d[i]))*1ll; } // ll ans = 0; 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; }