Primzahlaufzählung und Primzahlbeurteilung in Python

Ich benutze es gelegentlich selbst, also werde ich es auf Qiita posten (´ ・ ω ・ `)

primes (x) ist eine Methode, die Primzahlen kleiner als x in der Liste speichert. Als Algorithmus wird das Standard "Eratostenes-Sieb" verwendet. Ich denke, der Punkt, an dem kein Filter usw. verwendet wird, kann als Gerät bezeichnet werden.

Als nächstes ist "is_prime (x)" eine Methode, um zu bestimmen, ob die ganze Zahl "x" eine Primzahl ist. Der Algorithmus ist immer noch der Standard "Trial Split". Wir versuchen jedoch, die Effizienz durch die Verwendung von Pseudo-Primzahlen (Zahlen, die nicht durch 2, 3 oder 5 teilbar sind) zu verbessern.


import math

#Gibt eine Liste von Primzahlen größer oder gleich 0 und Ganzzahlen x "kleiner als" zurück.
def primes(x):
    if x < 2: return []

    primes = [i for i in range(x)]
    primes[1] = 0 #1 ist keine Primzahl

    #Eratostenes Sieb
    for prime in primes:
        if prime > math.sqrt(x): break
        if prime == 0: continue
        for non_prime in range(2 * prime, x, prime): primes[non_prime] = 0
    
    return [prime for prime in primes if prime != 0]


#Bestimmen Sie, ob die Ganzzahl x eine Primzahl ist
def is_prime(x):
    if x < 2: return False #Es gibt keine Primzahlen unter 2
    if x == 2 or x == 3 or x == 5: return True # 2,3,5 ist eine Primzahl
    if x % 2 == 0 or x % 3 == 0 or x % 5 == 0: return False # 2,3,Vielfache von 5 sind zusammengesetzte Zahlen

    #Testaufteilung:Pseudo-Primzahl(Zahlen, die nicht durch 2, 3 oder 5 teilbar sind)Teilen Sie einen nach dem anderen
    prime = 7
    step = 4
    while prime <= math.sqrt(x):
        if x % prime == 0: return False

        prime += step
        step = 6 - step
    
    return True


if __name__ == '__main__':
    print(primes(30)) #=> [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

    ls = [x for x in range(30) if is_prime(x)]
    print(ls) #=> [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]

Recommended Posts

Primzahlaufzählung und Primzahlbeurteilung in Python
Primzahl 2 in Python
Algorithmus in Python (Haupturteil)
Unendlicher Primgenerator in Python3
Primzahlaufzählung in einer Zeile
Projekt Euler # 7 "1000 1. Primzahl" in Python
Primzahlbeurteilung durch Python
Primzahlbeurteilung mit Python
Primzahlbeurteilung mit Python
Primzahl in Python
[Python 3] Primfaktor-Zerlegung in 14 Zeilen
Stapel und Warteschlange in Python
Implementierung von Fibonacci und Primzahlen (Python)
Python-Debug- und Testmodul
Unittest und CI in Python
Stellen Sie den Python-Test in Jenkins ein
Veriloggen und Cocotb werden nur zum Entwerfen und Testen von Verilog in Python verwendet.
Ich habe versucht, den Chi-Quadrat-Test in Python und Java zu programmieren.
Zahlenerkennung in Bildern mit Python
Pakete, die MIDI mit Python Midi und Pretty_Midi verarbeiten
Unterschied zwischen list () und [] in Python
Unterschied zwischen == und ist in Python
Zeigen Sie Fotos in Python und HTML an
Sortieralgorithmus und Implementierung in Python
Bearbeiten Sie Dateien und Ordner in Python
Über Python und Cython dtype
[Python] Woche 1-3: Nummerntyp und Operation
Primzahlgenerator von Python
Zuweisungen und Änderungen in Python-Objekten
Überprüfen und verschieben Sie das Verzeichnis in Python
Verschlüsselung mit Python: IND-CCA2 und RSA-OAEP
Schreiben Sie Selentestcode in Python
Hashing von Daten in R und Python
Funktionssynthese und Anwendung in Python
Statistischer Test (Mehrfachtest) in Python: scikit_posthocs
Exportieren und Ausgeben von Dateien in Python
Studiere, nummeriere das Spiel mit Python
Reverse Flat Pseudonym und Katakana in Python2.7
Lesen und Schreiben von Text in Python
[GUI in Python] PyQt5-Menü und Symbolleiste-
Erstellen und lesen Sie Messagepacks in Python
Ein Programm, das bestimmt, ob eine in Python eingegebene Zahl eine Primzahl ist
[Pytest] [mock] Anfänger in der Webentwicklung fassten den Unit-Test und den Mock in Python zusammen.
Überlappende reguläre Ausdrücke in Python und Java
Unterschied in der Authentizität zwischen Python und JavaScript
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
Stresstest mit Locust in Python geschrieben
Module und Pakete in Python sind "Namespaces"
Vermeiden Sie verschachtelte Schleifen in PHP und Python
Projekt Euler # 3 "Maximale Primfaktoren" in Python
Unterschiede zwischen Ruby und Python im Umfang
Unterschied zwischen Anweisungen (Anweisungen) und Ausdrücken (Ausdrücken) in Python
Echte Werte und Eigenvektoren: Lineare Algebra in Python <7>
Schreiben Sie den Test in die Python-Dokumentzeichenfolge
Warteschlangen- und Python-Implementierungsmodul "deque"
Gefaltetes Liniendiagramm und Skalierungslinie in Python
Unterschiede zwischen Python- und Java-Syntax
Überprüfen und empfangen Sie die serielle Schnittstelle in Python (Portprüfung)
Primzahl