結果
| 問題 | 
                            No.1058 素敵な数
                             | 
                    
| コンテスト | |
| ユーザー | 
                             lam6er
                         | 
                    
| 提出日時 | 2025-03-20 21:16:08 | 
| 言語 | PyPy3  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 45 ms / 2,000 ms | 
| コード長 | 1,187 bytes | 
| コンパイル時間 | 169 ms | 
| コンパイル使用メモリ | 82,576 KB | 
| 実行使用メモリ | 60,252 KB | 
| 最終ジャッジ日時 | 2025-03-20 21:16:57 | 
| 合計ジャッジ時間 | 1,153 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge3 / judge5 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 1 | 
| other | AC * 9 | 
ソースコード
import math
def is_prime(x):
    if x < 2:
        return False
    if x == 2:
        return True
    if x % 2 == 0:
        return False
    max_divisor = math.isqrt(x) + 1
    for i in range(3, max_divisor, 2):
        if x % i == 0:
            return False
    return True
def generate_large_primes(start, count):
    primes = []
    current = start
    if current % 2 == 0:
        current += 1
    while len(primes) < count:
        if is_prime(current):
            primes.append(current)
        current += 2
    return primes
# Generate the first 20 primes greater than 1e5
primes = generate_large_primes(10**5 + 1, 20)
candidates = []
# Generate all possible products of primes where i <= j
for i in range(len(primes)):
    p_i = primes[i]
    # Add the square
    candidates.append(p_i * p_i)
    # Add products with all primes[j] where j > i
    for j in range(i + 1, len(primes)):
        p_j = primes[j]
        candidates.append(p_i * p_j)
# Remove duplicates and sort
candidates = sorted(list(set(candidates)))
# The suteki numbers list starts with 1 followed by the sorted candidates
suteki_numbers = [1] + candidates
N = int(input())
print(suteki_numbers[N-1])
            
            
            
        
            
lam6er