Pythonで指定した範囲内の素数を求める方法
指定された数値の範囲内にある素数を見つけたい場合、まず範囲(下限・上限)を入力し、その間の数値を順番に反復処理していきます。素数かどうかの判定には「%」(剰余)演算子を使用します。
サンプルコード
以下に具体的な実装例を示します。
lower_range = 670
upper_range = 699
print("下限と上限の範囲は:")
print(lower_range, upper_range)
print(lower_range, "から", upper_range, "までの素数は:")
for num in range(lower_range, upper_range + 1):
if num > 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)実行結果
下限と上限の範囲は: 670 699 670 から 699 までの素数は: 673 677 683 691
コードの解説
- まず上限と下限の値を設定し、コンソールに表示します。
- range関数を使い、下限から上限までの数値を1つずつ反復処理します。
- 1は素数でも合成数でもないため、対象の数値が1より大きいかどうかを最初にチェックします。
- 内側のループで2から順に数値を割り、「%」演算子で剰余が0になるかどうかを確認します。剰余が0になれば約数が存在するため、その数は素数ではありません。
- 最後まで剰余が0にならなかった場合のみ、その数は素数としてコンソールに出力されます。
- 剰余が0になった時点でbreak文により内側のループを抜け、次の数値の判定へ移ります。
ポイント:Python特有のfor-else構文
このコードでは、Python特有の「for-else」構文が使われています。通常の言語とは異なり、Pythonではループがbreakされずに最後まで完了した場合にelseブロックが実行されます。これにより、「約数が見つからなかった場合=素数である」という判定を簡潔に記述できます。
効率化のヒント
大きな範囲を扱う場合、内側のループを range(2, int(num ** 0.5) + 1) とすることで、平方根までの数だけをチェックすればよいため、処理速度を大幅に向上させることができます。
-
Pythonで特定の範囲内のカプレカー数を見つける方法
カプレカー数とは? 修正カプレカー数(Modified Kaprekar Number)とは、d 桁の正の整数 n のうち、その2乗を2つの部分に分割したとき——具体的には、右側の部分 r を d 桁、左側の部分 l を残りの d 桁または d−1 桁としたとき——両者の和が元の数と等しくなる(l + r = n)ような数のことを指します。 たとえば 297 を考えてみましょう。297 の2乗は 88209 です。これを「88」と「209」に分割すると、88 + 209 = 297 となり、確かに元の数へと戻ることがわかります。 指定した範囲内のカプレカー数を求める方法 与えられた範囲内の各数
-
Pythonのリストから最大値を取得する方法|max()関数の使い方を解説
Pythonで最大値を見つけるには?Pythonには、リストなどのイテラブル(反復可能なオブジェクト)の中から最大の数値を簡単に取り出すための組み込み関数 max() が用意されています。この関数は、カンマ区切りで渡した複数の数値、あるいはリスト・タプルなどのコレクションを引数に受け取ることができます。基本的な使い方まず、複数の数値を直接引数として渡す例を見てみましょう。>>> max(10, 23, 43, 21) 43このように、max() に数値をカンマ区切りで渡すと、その中で最も大きい値である 43 が返されます。リストから最大値を取得する次に、リストを引数として渡す