結果
問題 |
No.3253 Banned Product
|
ユーザー |
|
提出日時 | 2025-09-05 22:33:12 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 762 bytes |
コンパイル時間 | 217 ms |
コンパイル使用メモリ | 82,472 KB |
実行使用メモリ | 154,540 KB |
最終ジャッジ日時 | 2025-09-05 22:33:35 |
合計ジャッジ時間 | 4,117 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 3 WA * 6 |
ソースコード
from math import* from bisect import* t=int(input()) N=100000 spf=[0]*(N+1) prime=[] for m in range(2,N+1): if spf[m]<1:spf[m]=m;prime+=[m] for p in prime: if p>spf[m] or p*m>N:break spf[p*m]=p for _ in range(t): n,k=map(int,input().split()) ans=-1 i=bisect_left(prime,isqrt(n)) a=prime[i] b=n//a if(k<a or k<b)and 1<=a and 1<=b and a*b<=n: ans=max(ans,a*b) if i: a=prime[i-1] b=n//a if(k<a or k<b)and 1<=a and 1<=b and a*b<=n: ans=max(ans,a*b) m=10**6 s=[1]*m for i in prime: j=max(k//i,2)*i if j<=k: j+=i while k<j<k+m: s[j-k]=0 j+=i for i in range(1,m): if s[i]: a=i+k b=n//a if(k<a or k<b)and 1<=a and 1<=b and a*b<=n: ans=max(ans,a*b) print(ans)