【A】プリンキピア・マセマティカ【B】at PHILO【A】プリンキピア・マセマティカ【B】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト120:考える名無しさん 25/07/13 18:01:34.25 0.net import time def find_twin_primes(limit): """ エラトステネスの篩を使って、指定された数までの双子素数を見つける関数 """ print(f"{limit} までの双子素数を探します...") # limitまでTrueのリストを作成(0と1は素数ではない) is_prime = [True] * (limit + 1) is_prime[0] = is_prime[1] = False # エラトステネスの篩を実行 # i * i が limit を超えるまで調べれば良い for i in range(2, int(limit**0.5) + 1): if is_prime[i]: # iの倍数をすべて素数ではない(False)にする for multiple in range(i * i, limit + 1, i): is_prime[multiple] = False 121:考える名無しさん 25/07/13 18:02:01.43 0.net # 双子素数のペアを探してリストに追加 twins = [] for p in range(3, limit - 1): if is_prime[p] and is_prime[p + 2]: twins.append((p, p + 2)) return twins if __name__ == '__main__': # 探す上限を設定 UPPER_LIMIT = 100_000_000 # 0から1億までの双子素数を探索 start_time = time.time() twin_primes_list = find_twin_primes(UPPER_LIMIT) end_time = time.time() # 結果の表示 print(f"\n見つかった双子素数の数: {len(twin_primes_list)} 個") # 最初の10個と最後の10個だけ表示 if len(twin_primes_list) > 15: print("最初の10ペア:", twin_primes_list[:10]) print("...") print("最後の10ペア:", twin_primes_list[-10:]) else: print("見つかったペア:", twin_primes_list) print(f"\n処理時間: {end_time - start_time:.4f} 秒") 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch