結果
問題 |
No.1262 グラフを作ろう!
|
ユーザー |
![]() |
提出日時 | 2020-10-17 14:22:47 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 2,723 ms / 3,000 ms |
コード長 | 668 bytes |
コンパイル時間 | 391 ms |
コンパイル使用メモリ | 82,232 KB |
実行使用メモリ | 296,564 KB |
最終ジャッジ日時 | 2024-07-21 02:21:44 |
合計ジャッジ時間 | 158,684 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 96 |
ソースコード
from collections import Counter as C N, M = map(int, input().split()) A = [int(a) for a in input().split()] X = [-1] * (N+1) L = [[] for _ in range(N+1)] k = 2 while k <= N: X[k] = 1 L[k].append(k) for i in range(k*2, N+1, k): X[i] = 0 L[i].append(k) d = 2 while k**d <= N: for i in range(k**d, N+1, k**d): L[i].append(k) d += 1 while k <= N and X[k] >= 0: k += 1 P = [i for i in range(N+1) if X[i] == 1] def calc(n): s = 1 l = C(L[n]) for p in l: s = s * p ** (l[p] - 1) * ((p - 1) * (l[p] + 1) + 1) return s ans = - sum(A) for a in A: ans += calc(a) print(ans)