結果
| 問題 |
No.811 約数の個数の最大化
|
| コンテスト | |
| ユーザー |
👑 Kazun
|
| 提出日時 | 2020-11-14 03:25:56 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 145 ms / 2,000 ms |
| コード長 | 1,074 bytes |
| コンパイル時間 | 171 ms |
| コンパイル使用メモリ | 82,432 KB |
| 実行使用メモリ | 77,440 KB |
| 最終ジャッジ日時 | 2024-07-22 22:41:23 |
| 合計ジャッジ時間 | 2,358 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 12 |
ソースコード
def Smallest_Prime_Factor(N):
"""0,1,2,...,Nの最小の素因数のリスト(0,1については1にしている)
"""
N=abs(N)
L=[0]*(N+1)
L[0]=L[1]=1
for p in range(2,N+1):
if L[p]==0:
for q in range(p,N+1,p):
if L[q]==0:
L[q]=p
return L
def Faster_Prime_Factorization(N,L):
"""
L:Smallest_Prime_Factors(N)で求めたリスト
"""
N=abs(N)
if N<=1:
return [[N,1]]
D=[]
while N>1:
a=L[N]
k=0
while L[N]==a:
k+=1
N//=a
D.append([a,k])
return D
#================================================
N,K=map(int,input().split())
T=Smallest_Prime_Factor(N)
A={p:e for p,e in Faster_Prime_Factorization(N,T)}
C=0
M=0
for i in range(2,N):
B={p:e for p,e in Faster_Prime_Factorization(i,T)}
X=0
for p in B:
if p in A:
X+=min(A[p],B[p])
if X>=K:
D=1
for p in B:
D*=(B[p]+1)
if D>C:
C=D
M=i
print(M)
Kazun