Dies ist ein "Programm, das bestimmt, ob die Eingabe-Ganzzahl n eine Primzahl oder eine zusammengesetzte Zahl ist", das ich nach dem Studium von Python und dem Erlernen der grundlegenden Syntax erstellt habe. Ich schreibe es auch als mein eigenes Tagebuch. Ich denke, es gibt noch viele Punkte, die noch erreicht werden müssen, aber ich würde mich über jeden Rat freuen.
Die Methode zur Bestimmung der Primzahl dieses Mal basierte auf der Tatsache, dass "für die Eingabe n, wenn der Bruchteil von n keine Primzahl bis zu √n ist, es eine Primzahl ist". Siehe unten für einen detaillierten Beweis. [Beweis, dass n eine Primzahl ist, wenn die natürliche Zahl n nicht durch alle Primzahlen kleiner oder gleich √n teilbar ist](https://cartman0.hatenablog.com/entry/2017/10/23/%E8%87%AA % E7% 84% B6% E6% 95% B0n% E3% 81% 8C% E2% 88% 9An% E4% BB% A5% E4% B8% 8B% E3% 81% AE% E3% 81% 99% E3 % 81% B9% E3% 81% A6% E3% 81% AE% E7% B4% A0% E6% 95% B0% E3% 81% A7% E5% 89% B2% E3% 82% 8A% E5% 88 % 87% E3% 82% 8C% E3% 81% AA% E3% 81% 91% E3% 82% 8C)
import math
from sympy import primerange
n = int(input("Geben Sie die Nummer ein, die Sie überprüfen möchten, ob es sich um eine Primzahl handelt.>> "))
num = int(math.sqrt(n)) + 1
primlist = list(primerange(2,num)) #1
for i in primlist: #2
if n % i == 0: #3
print("Die Anzahl der Verbundwerkstoffe.")
break
elif i == primlist[-1] :
print("Es ist eine Primzahl.")
Ich habe zum ersten Mal ein Primzahlurteil abgegeben, bin aber persönlich mit etwas zufrieden, das funktioniert. Wenn jedoch n größer wird (mehr als 7 Stellen), wird die Berechnungsgeschwindigkeit langsamer, daher möchte ich sie irgendwie verbessern. Wenn Sie darüber nachdenken, mussten Sie keine Mathematik verwenden, daher möchte ich das Problem beheben. Dies ist mein erstes selbst gemachtes Programm, also lasse ich es dieses Mal als Denkmal. Ich bin der Meinung, dass es mit diesem Programm möglich ist, Primfaktoren zu zerlegen, daher möchte ich es ändern. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts