結果

問題 No.3253 Banned Product
ユーザー moon17
提出日時 2025-09-05 22:22:33
言語 PyPy3
(7.3.15)
結果
WA  
実行時間 -
コード長 664 bytes
コンパイル時間 240 ms
コンパイル使用メモリ 82,840 KB
実行使用メモリ 154,296 KB
最終ジャッジ日時 2025-09-05 22:22:38
合計ジャッジ時間 4,201 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 3 WA * 6
権限があれば一括ダウンロードができます

ソースコード

diff #

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))
  j=prime[i]
  if k<j and j*j<=n:
    ans=max(ans,j*j)
  if i:
    j=prime[i-1]
    if k<j and j*j<=n:
      ans=max(ans,j*j)
  m=10**6
  s=[1]*m
  for i in prime:
    j=max(k//i,2)*i
    if j<=k:
      j+=i
    while 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 1<=a and 1<=b:
        ans=max(ans,a*b)
  print(ans)
0