結果
問題 |
No.2365 Present of good number
|
ユーザー |
|
提出日時 | 2023-06-30 22:34:22 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 768 bytes |
コンパイル時間 | 155 ms |
コンパイル使用メモリ | 82,508 KB |
実行使用メモリ | 59,284 KB |
最終ジャッジ日時 | 2024-07-07 10:25:25 |
合計ジャッジ時間 | 2,885 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 4 WA * 35 |
ソースコード
#from collections import defaultdict n,K=map(int,input().split()) mod=10**9+7 d=dict() i=2 while 1<n: while n%i==0: n//=i if i in d:d[i]+=1 else:d[i]=1 i+=1 L=[[k,v] for k,v in d.items()] for i in range(1,K+1): nx=dict() if 2 in d: nx[3]=d[2] for k,v in d.items(): if k==2:continue else: if (k+1)//2 in nx:nx[(k+1)//2]+=d[k] else:nx[(k+1)//2]=d[k] if 2 in nx:nx[2]+=d[k] else:nx[2]=d[k] d=nx if len(d)<=2 and set(list(d.keys())) in [{2,3},{2},{3}] : if 2 in d:d[2]*=pow(2,(K-i)//2,mod) if 3 in d:d[3]*=pow(2,(K-i)//2,mod) if (K-i)%2==1: nx=dict() if 3 in d:nx[2]=d[3]*2 if 2 in d:nx[3]=d[2] break ans=1 for k,v in nx.items(): ans*=pow(k,v,mod) ans%=mod print(ans)