0
私はちょうどプログラムの仕方を学び始めました。そして、n番目の素数を見つけるプログラムを作ろうとしていました。そして私はそれをやった。しかし、それは非常に長い時間がかかります。それをより速くする方法はありますか?ここで私が使用したコードは(それは本当に基本的です)です:n番目の素数をより速く見つけるには?
def prime_finder(nth1):
s = 1
n = 0
while n < nth1:
s += 1
for x in range(2,s):
if s % x == 0:
break
else:
n += 1
return s
print prime_finder(31337)
1つの方法は、* n *番目の既存の相対的にタイトな上限のいくつかを用いて、[プライムシーブ]アルゴリズム(https://en.wikipedia.org/wiki/Generating_primes#Prime_sieves)を適応させることです素数。より簡単な修正の点では、2からsqrtまでの除算をチェックする必要があります。これは少し速くなる可能性があります:) – oldrinb
これはPythonについてのことではなく、[アルゴリズム](https://en.wikipedia。 org/wiki/Algorithm)。たとえば、[Sag of Eratosthenes](https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes)を見てみてください。そこには擬似コードがあり、そこから始めるべきです。また、より多くを見つけるために「素数を見つける」ためのGoogleだけでもできます。 – rkersh