結果
| 問題 |
No.2211 Frequency Table of GCD
|
| コンテスト | |
| ユーザー |
tamato
|
| 提出日時 | 2023-02-10 21:51:02 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,297 ms / 2,000 ms |
| コード長 | 860 bytes |
| コンパイル時間 | 144 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 115,412 KB |
| 最終ジャッジ日時 | 2024-07-07 17:57:42 |
| 合計ジャッジ時間 | 11,837 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
mod = 998244353
def main():
import sys
from collections import Counter
input = sys.stdin.readline
N, M = map(int, input().split())
A = list(map(int, input().split()))
cnt = [0] * (M+1)
C = Counter(A)
for a in C:
div = []
for d in range(1, a+1):
if d * d > a:
break
if a % d == 0:
div.append(d)
div.append(a // d)
if div[-1] == div[-2]:
div.pop()
for d in div:
cnt[d] += C[a]
ans = [0] * (M+1)
for k in range(M, 0, -1):
ans[k] = (pow(2, cnt[k], mod) - 1) % mod
for x in range(2, M+1):
if k * x > M:
break
ans[k] = (ans[k] - ans[k * x]) % mod
for k in range(1, M+1):
print(ans[k])
if __name__ == '__main__':
main()
tamato