結果
| 問題 | No.6 使いものにならないハッシュ | 
| コンテスト | |
| ユーザー |  | 
| 提出日時 | 2014-10-04 02:58:41 | 
| 言語 | Python2 (2.7.18) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 94 ms / 5,000 ms | 
| コード長 | 1,110 bytes | 
| コンパイル時間 | 392 ms | 
| コンパイル使用メモリ | 6,912 KB | 
| 実行使用メモリ | 8,448 KB | 
| 最終ジャッジ日時 | 2024-09-16 16:21:08 | 
| 合計ジャッジ時間 | 3,289 ms | 
| ジャッジサーバーID (参考情報) | judge3 / judge4 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 32 | 
ソースコード
K = int(raw_input())
N = int(raw_input())
def foldnum(n):
    if n == 0:
        return 0
    if n % 9 == 0:
        return 9
    return n % 9
def eratos(n):
    list = xrange(2, n + 1)
    ans = []
    while len(list):
        ans.append(list[0])
        list = filter(lambda x: x % list[0] > 0, list)
    return ans
def eratos2(n):
    table = [True] * (n + 1)
    table[0] = table[1] = False
    a = 2
    while a * a <= n:
        if table[a]:
            k = 2
            while a * k <= n:
                table[a * k] = False
                k += 1
        a += 1
    ans = []
    for i, v in enumerate(table):
        if v:
            ans.append(i)
    return ans
prime_map = filter(lambda x: x >= K, eratos2(N))
L = len(prime_map)
a = 0
b = 0
mx = 0
total = 0
check = [False] * 10
maxIndex = 0
while a < L:
    while b < L:
        v = foldnum(prime_map[b])
        if check[v]:
            break
        b += 1
        check[v] = True
    if mx <= b - a - 1:
        mx = b - a - 1
        maxIndex = a
    v = foldnum(prime_map[a])
    check[v] = False
    a += 1
print prime_map[maxIndex]
            
            
            
        