結果
問題 | No.1809 Divide NCK |
ユーザー | titia |
提出日時 | 2022-01-14 22:04:54 |
言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
結果 |
AC
|
実行時間 | 206 ms / 2,000 ms |
コード長 | 509 bytes |
コンパイル時間 | 341 ms |
コンパイル使用メモリ | 12,416 KB |
実行使用メモリ | 10,752 KB |
最終ジャッジ日時 | 2024-11-20 10:32:55 |
合計ジャッジ時間 | 5,106 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 39 |
ソースコード
import sys input = sys.stdin.readline N,K,M=map(int,input().split()) x=M # 素因数分解 import math L=int(math.sqrt(x)) FACT=dict() for i in range(2,L+2): while x%i==0: FACT[i]=FACT.get(i,0)+1 x=x//i if x!=1: FACT[x]=FACT.get(x,0)+1 LANS=1<<65 for f in FACT: ANS=0 for i in range(1,65): if pow(f,i)>10**18: break ANS+=N//pow(f,i) ANS-=K//pow(f,i) ANS-=(N-K)//pow(f,i) LANS=min(LANS,ANS//FACT[f]) print(LANS)