結果
| 問題 | No.3776 Magic Square of Product |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-10-26 02:00:57 |
| 言語 | PyPy3 (8.0.1 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 153 ms / 2,500 ms |
| + 272µs | |
| コード長 | 1,546 bytes |
| 記録 | |
| コンパイル時間 | 78 ms |
| コンパイル使用メモリ | 64,480 KB |
| 実行使用メモリ | 74,996 KB |
| 最終ジャッジ日時 | 2026-10-26 02:01:38 |
| 合計ジャッジ時間 | 7,361 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge7_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 25 |
ソースコード
# https://github.com/robe2222555/atcoder-lib/blob/main/template/python/main.py import sys input = lambda: sys.stdin.readline().rstrip() def LI(): return list(map(int, input().split())) def II(): return int(input()) INF = 1<<60 mod = 998244353 LIM = 20 ans = [0]*LIM ans[0] = 1 for e in range(1, LIM): sumi = [0,0,0] sumj = [0,0,0] def dfs(i,j): if i==2: a,b,c = e-sumj[0], e-sumj[1], e-sumj[2] if a+b+c==e: ans[e] += 1 return elif j==2: num = e-sumi[i] if sumj[j] + num > e: return sumi[i] += num sumj[j] += num dfs(i+1,0) sumi[i] -= num sumj[j] -= num return else: for num in range(min(e-sumi[i], e-sumj[j])+1): sumi[i] += num sumj[j] += num dfs(i,j+1) sumi[i] -= num sumj[j] -= num return dfs(0,0) # https://github.com/robe2222555/atcoder-lib/blob/main/3_数学/整数/素数関係/smallest_prime_factor.py # 1~i~nについて、iの最小の素因数をリストで返す # i / List[i] を繰り返す def Fast_PFact(n): List=[0 for i in range(n+1)] List[1]=1 for i in range(2,n+1): if List[i]==0: cnt=1 while i*cnt<=n: if List[i*cnt]==0: List[i*cnt]=i cnt+=1 return List P = Fast_PFact(10**6+1) from collections import defaultdict def solve(): K = II() cnt = defaultdict(int) while K>1: tmp = P[K] cnt[tmp] += 1 K //= tmp continue res = 1 for v in cnt.values(): res = res*ans[v]%mod print(res) return def main(): T = II() for _ in range(T): solve() return if __name__ == '__main__': main()