Python実行例 素数に関する計算
ナビゲーションに移動
検索に移動
実行例を示します。
# 必要なモジュール、クラス、関数の読み込み(下の2行は場合によってはなくてもよい) import matplotlib.pyplot as plt import math # 素数に印をつける(エラトステネスの篩) n = 100 prime = [True for i in range(n+1)] prime[1] = prime[0] = False for i in range(2, n): if prime[i]: for j in range(2*i, n+1, i): prime[j] = False # 素数を列挙する for p in range(n+1): if prime[p]: print(p, end=' ') # n = 10000 としてエラトステネスの篩をやり直す # 素数を列挙する(整形版) column = 0 for p in range(n+1): if prime[p]: column += 1 if column % 10 == 0: print(f'{p:6}') else: print(f'{p:6}', end='') # 双子素数を列挙する twin_primes = [] for p in range(n+1): if prime[p]: if prime[p+2]: twin_primes.append([p, p+2]) print(twin_primes) # 三つ子素数を列挙する prime_triplets = [] for p in range(n+1): if prime[p]: if prime[p+2]: if prime[p+6]: prime_triplets.append([p, p+2, p+6]) elif prime[p+4]: if prime[p+6]: prime_triplets.append([p, p+4, p+6]) print(prime_triplets) # 浜田の三つ組素数を列挙する h_prime_trinity = [] for p in range(n+1): if prime[p]: if prime[p+6]: if prime[p+12]: h_prime_trinity.append([p, p+6, p+12]) print(h_prime_trinity) # 100 以下の素数の数 sum(prime[1:101]) # 10000までの素数を求めた後、100ごと、あるいは1000ごとの素数の数を数えてグラフにする num_prime = [] for i in range(100): num_prime.append(sum(prime[i*100:(i+1)*100])) print(num_prime) plt.plot(num_prime) num_prime = [] for i in range(10): num_prime.append(sum(prime[i*1000:(i+1)*1000])) plt.plot(num_prime)
この他にも色々試して、追加してください。