Primzahlbeurteilung durch Python

Ich habe versucht, 100 oder weniger Primzahlen mit Python auf drei Arten zu implementieren. Es zeigt auch die jeweils benötigte Zeit.

① Verwenden Sie keine anderen integrierten Funktionen als Drucken (außer Zeit).


import time
n = 2

t1 = time.time()
while n <= 100:
    div = 0
    m = 1
    while m <= n:
        if n % m == 0:
            div += 1
        m += 1
    if div == 2:
        print(n)
    n += 1
time = time.time() - t1
print("time:{}".format(time))

Ausführungsergebnis

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 0.007971048355102539

② So überprüfen Sie nacheinander

import time

def ma(n):
    sosu_list = []
    t1 = time.time()
    for n in range(2,n + 1):
        div = 0
        for m in range(1,n + 1):
            if n % m == 0:
                div = div + 1
        if div == 2:
            sosu_list.append(n)
    print(sosu_list)
            
t1 = time.time()
ma(100)
time = time.time() - t1
print("time:{}".format(time))

Ausführungsergebnis [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] time:0.0027151107788085938

③ Eratostenes-Sieb

import time

def eratosu(n):
        sosu_list = []
        false = []
        for i in range(2,n+1):
            if i not in false:
                sosu_list.append(i)
                for j in range(i*i,n+1,i):
                    false.append(j)
        return sosu_list
    
t1 = time.time()
print(eratosu(100))
time = time.time() - t1
print("time:{}".format(time))
            

Ausführungsergebnis [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97] time:0.0005650520324707031

Beim Vergleich der Zeit haben sich ① und ② im Grunde nicht viel geändert. Methode (2) war jedoch nicht stabil, da die Geschwindigkeit manchmal nahe an der von (3) lag. Im Vergleich dazu war das Programm (3) das schnellste davon. Es ist ein Algorithmus namens Eratostenes-Sieben, aber wahrscheinlich, weil er sehr effizient und der Rechenaufwand gering war (ich habe auf das Wiki verwiesen, also werde ich einen Link posten).

Selbst für Programme, die dieselben Ergebnisse liefern, macht es Spaß, sie mit unterschiedlichen Ideen umzusetzen, daher möchte ich fortfahren.

Eratostenes Sieve Wikipedia

Recommended Posts

Primzahlbeurteilung durch Python
Primzahlbeurteilung mit Python
Primzahlbeurteilung mit Python
Algorithmus in Python (Haupturteil)
Python-Entwicklung unterstützt durch Jenkins-Unit-Test
Python-Integritätstest
Visualisierungsnotiz von Python
Kommunikationsverarbeitung durch Python
Python Basic 8 Numpy Test
Primzahlaufzählung und Primzahlbeurteilung in Python
Python-Testpaket-Memo
Beamformer-Antwort von Python
Python-Tag-Kooperationstest
Python-Unit-Test-Vorlage
Spracherkennung durch Python MFCC
EXE Web API von Python
Newcomer Trainingsprogramm von Python
Parametereinstellung durch Python Configparser
Pin Python von Conda verwaltet
Keyword-Extraktion mit MeCab (Python)
Zahlen durch 3 Ziffern trennen (Python)
Python-Vorlage für Codeforces-manuelle Test-
Markov-Schaltmodell von Python
Bildverarbeitung mit Python (Pillow)
Python wurde von C-Programmierern gestartet
Python-Debug- und Testmodul
Plattform (OS) Beurteilung durch Python
Sortieren nach Datum in Python
Stellen Sie den Python-Test in Jenkins ein
[Python] Sortierbar nach mehreren Bedingungen sortieren
Python
Erweiterung des Python-Wörterbuchs um Argumente
AtCoder: Python: Papa der Beispieltest.
Zusammenfassung des maschinellen Lernens von Python-Anfängern
Lerne Python durch Zeichnen (Turtle Graphics)
Prüfung
Primzahlgenerator von Python
[Python] Testbeispiel mit unittest2, mock
Dicky Fuller Test von Statistikmodellen
Python SQL-Anweisung Nach Zeit extrahieren
Attributzugriff auf Python dict zulassen
Betriebssystembestimmung durch Makefile mit Python
Unit Test Log Ausgabe mit Python
Typisierungsautomatisierungsnotiz von Python-Anfängern
Schreiben Sie Selentestcode in Python
Effiziente PCR-Inspektion nach Poolmethode
Erstelltes AtCoder-Testtool für Python
Statistischer Test (Mehrfachtest) in Python: scikit_posthocs
Abschnittsplanung Lernnotiz ~ von Python ~
Verhalten von Python3 durch Sakuras Server
100 Sprachverarbeitung Knock Kapitel 1 von Python
Geschichte der Potenznäherung von Python
Blender 2.9, Python-Hintergrundlicht-Farbtest
Sortieren von Dateien nach Namenskonvention mit Python
Erklärung des Produktionsoptimierungsmodells durch Python
Abrufen von Eigenschaftsinformationen durch Scraping mit Python
Python> Wörterbuch> Werte ()> Alle Werte mithilfe von Werten abrufen ()
[Python] Was wird durch Mehrfachvererbung geerbt?
[Python] Super einfacher Test mit Assert-Anweisung
Stresstest mit Locust in Python geschrieben