結果
問題 | No.890 移調の限られた旋法 |
ユーザー |
![]() |
提出日時 | 2024-09-30 04:20:05 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 544 bytes |
コンパイル時間 | 189 ms |
コンパイル使用メモリ | 82,048 KB |
実行使用メモリ | 200,740 KB |
最終ジャッジ日時 | 2024-09-30 04:20:15 |
合計ジャッジ時間 | 7,573 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 31 WA * 1 |
ソースコード
n,k=map(int,input().split())if n==k:print(1)exit()M=10**9+7fa=[1,1]fb=[1,1]for i in range(2,n+1):fa+=[fa[-1]*i%M]fb+=[fb[-1]*(M//i)*fb[M%i]*fa[M%i-1]*(-1)%M]c=lambda n,k:fa[n]*fb[k]*fb[n-k]%M if n>=k else 0q=[0]*(n+1)for i in range(2,n+1):if n%i==0 and k%i==0:q[i]=c(n//i,k//i)l=nP=[1]*(l+1)for i in range(2,l+1):if P[i]:for j in range(i+i,l+1,i):P[j]=0P=[i for i in range(2,l+1) if P[i]]for p in P:for i in range(2,n+1):if i*p<=n:q[i]-=q[i*p]else:breakprint(sum(q)%M)