結果
| 問題 |
No.371 ぼく悪いプライムじゃないよ
|
| コンテスト | |
| ユーザー |
convexineq
|
| 提出日時 | 2021-02-17 19:53:05 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 65 ms / 1,000 ms |
| コード長 | 865 bytes |
| コンパイル時間 | 162 ms |
| コンパイル使用メモリ | 82,256 KB |
| 実行使用メモリ | 69,300 KB |
| 最終ジャッジ日時 | 2024-09-14 05:27:58 |
| 合計ジャッジ時間 | 3,679 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 42 |
ソースコード
def Eratosthenes(N): #N以下の素数のリストを返す
N+=1
is_prime_list = [True]*N
m = int(N**0.5)+1
for i in range(3,m,2):
if is_prime_list[i]:
is_prime_list[i*i::2*i]=[False]*((N-i*i-1)//(2*i)+1)
return [2] + [i for i in range(3,N,2) if is_prime_list[i]]
L,R = map(int,input().split())
primes = Eratosthenes(int(R**0.5)+100)
l = len(primes)
for p in primes[::-1]:
if L <= p*p <= R:
for q in primes[::-1]:
if L <= p*q <= R:
print(p*q)
exit()
min_factor = [0]*(R-L+1)
for p in primes[::-1]:
sind = (L+p-1)//p #gind = R//p
for i in range(sind*p-L,R-L+1,p):
min_factor[i] = p
if L <= p <= R:
min_factor[p-L] = 0
ans = val = 0
for i in range(R-L+1):
if val <= min_factor[i]:
ans = i
val = min_factor[i]
print(ans+L)
convexineq