この記事では主にPythonを使って素数(素数)を求める簡単な方法を紹介します。科学技術計算によく使われるPythonは、もちろんこのような小さな問題にも簡単に対応できます^_-困っている友達は参考にしてください
素数は素数とも呼ばれます。 1 より大きく、1 と整数自体を除く他の自然数で割り切れない自然数を指します。素数は整数論において重要な役割を果たします。 1より大きいが素数ではない数を合成数と呼びます。 1 と 0 は素数でも合成数でもありません。素数は合成数に対置される 2 つの概念であり、数論における最も基本的な定義の 1 つを構成します。ゴールドバッハ予想など、素数の定義に基づく世界レベルの問題は数多くあります。算術の基本定理は、1 より大きいすべての正の整数は素数の積として記述できること、およびこの積の形式が一意であることを証明しています。この定理の重要な点は、素数の集合から 1 が除外されていることです。 1 が素数とみなされる場合、これらの厳密な公式にはいくつかの制限を課す必要があります。 数日前、友人が時々 Python に素数を決定する方法を尋ねました。私はオンラインで調べて、数値が素数かどうかを決定するための Python スクリプトのいくつかの方法をまとめました:
1 Python の数学関数を使用します。 import math
def isPrime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
from math import sqrt
N = 100
[ p for p in range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]
Python の itertools モジュールを使用する
from itertools import count def isPrime(n): www.jb51.net if n <= 1: return False for i in count(2): if i * i > n: return True if n % i == 0: return False
方法 1:
def isPrime(n):
if n <= 1:
return False
i = 2
while i*i <= n:
if n % i == 0:
return False
i += 1
return True
def isPrime(n): if n <= 1: return False if n == 2: return True if n % 2 == 0: return False i = 3 while i * i <= n: if n % i == 0: return False i += 2 return True
#!/usr/bin/python
L1=[]
for x in xrange(20001,40001):
n = 0
for y in xrange(1,x+1):
if x % y == 0:
n = n + 1
if n == 2 :
print x
L1.append(x)
print L1
20011 20021 20023 20029 20047 20051 20063 20071 20089 20101 20107 20113 20117 20123 20129 20143 20147 20149 20161 20173 ….