結果
| 問題 |
No.2249 GCDistance
|
| ユーザー |
tamato
|
| 提出日時 | 2023-03-17 22:24:43 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 2,910 ms / 5,000 ms |
| コード長 | 658 bytes |
| コンパイル時間 | 253 ms |
| コンパイル使用メモリ | 82,176 KB |
| 実行使用メモリ | 233,168 KB |
| 最終ジャッジ日時 | 2024-09-18 11:33:15 |
| 合計ジャッジ時間 | 35,939 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 10 |
ソースコード
import sys
input = sys.stdin.readline
mod = 998244353
NN = 10 ** 7 + 1
ans = [0] * (NN + 1)
min_factor = list(range(NN + 1))
for i in range(2, NN + 1):
if min_factor[i] == i:
for x in range(2, NN + 1):
if x * i > NN:
break
min_factor[x * i] = min(min_factor[x * i], i)
for i in range(2, NN + 1):
ii = i
prev_p = 1
phi = i
while ii != 1:
p = min_factor[ii]
if p != prev_p:
prev_p = p
phi *= p - 1
phi //= p
ii //= p
ans[i] = ans[i - 1] + 2 * (i - 1) - phi
for _ in range(int(input())):
N = int(input())
print(ans[N])
tamato