LoginSignup
0
0

More than 3 years have passed since last update.

【Python】範囲指定した中から、複数の異なる素数を取得する

Last updated at Posted at 2019-06-02

はじめに

この記事では100から1000を指定して、2つの異なる素数(3桁の素数)を取得するプログラムを記述してあります。
考え方は100から1000の数の中から、余りが0になる数がその数しかない場合を配列に格納していき、その配列をシャッフルしたのちに、0番目と1番目の要素を出力するといったものです。

完成したプログラム

こちらが完成したプログラムになります。

互いに素.py
import random as rd

MinNum = 100
MaxNum = 1000
PrimeNum_list = []

CheckNum = 0
for i in range(MinNum,MaxNum):
	for j in range(2,i+1):
		if i%j==0: CheckNum+=1
		if CheckNum == 2: break

	if CheckNum == 1:
		PrimeNum_list.append(i)
	CheckNum = 0

#print(PrimeNum_list)
rd.shuffle(PrimeNum_list)
print(PrimeNum_list[0])
print(PrimeNum_list[1])

MinNumとMaxNumの数値を変えれば好きな範囲で出力できます。

また、random.sampleを使うと便利というコメントをいただいたので、その方法で少しプログラムを書き換えてみました。

互いに素2.py
import random as rd

MinNum = 100
MaxNum = 1000
PrimeNum_list = []

CheckNum = 0
for i in range(MinNum,MaxNum):
	for j in range(2,i+1):
		if i%j==0: CheckNum+=1
		if CheckNum == 2: break

	if CheckNum == 1:
		PrimeNum_list.append(i)
	CheckNum = 0

print(rd.sample(PrimeNum_list,2))

random.sampleを使うと重複なしでリストからランダムで複数の要素を取得できます!

出力結果

  • 互いに素.pyの実行例
389
953

上記は一例ですが、2つの異なる素数が出力されたら、成功です。

  • 互いに素2.pyの実行例
[271, 547]

ちなみに3桁の素数は以下のようになります。

101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0