Primzahlen werden auch Primzahlen genannt. Bezieht sich auf eine natürliche Zahl größer als 1, die nicht durch andere natürliche Zahlen außer 1 und der ganzen Zahl selbst teilbar ist. Primzahlen spielen in der Zahlentheorie eine wichtige Rolle. Zahlen größer als 1, aber keine Primzahl, werden zusammengesetzte Zahlen genannt. 1 und 0 sind weder Primzahlen noch zusammengesetzte Zahlen. Primzahlen sind zwei Konzepte, die den zusammengesetzten Zahlen entgegengesetzt sind. Die beiden bilden eine der grundlegendsten Definitionen in der Zahlentheorie. Es gibt viele erstklassige Probleme, die auf der Definition von Primzahlen basieren, wie zum Beispiel die Goldbach-Vermutung. Der Fundamentalsatz der Arithmetik beweist, dass jede positive ganze Zahl größer als 1 als Produkt von Primzahlen geschrieben werden kann und dass die Form dieses Produkts eindeutig ist. Der wichtige Punkt dieses Theorems ist, dass 1 aus der Menge der Primzahlen ausgeschlossen ist. Wenn 1 als Primzahl betrachtet wird, müssen diese strengen Formulierungen einige Einschränkungen mit sich bringen. Vor ein paar Tagen fragte ein Freund Python, wie man Primzahlen ermittelt, und fasste mehrere Methoden von Python-Skripten zusammen, um festzustellen, ob eine Zahl Primzahlen ist:
1 mathematische Funktionen
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
2. Einzeiliges Programm zum Scannen von Primzahlen
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)] ]
Verwenden Sie das Python-Itertools-Modul
from itertools import count def isPrime(n): m.sbmmt.com if n <= 1: return False for i in count(2): if i * i > n: return True if n % i == 0: return False
Zwei Methoden ohne Verwendung von Modulen
Methode 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
Methode 2:
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
zB: Finden Sie die Primzahlen (Primzahlen) zwischen 20001 und 40001
Da es nur durch 1 oder durch sich selbst geteilt werden kann, bedeutet dies, dass es nur zwei Zeiten gibt, in denen die Der Rest ist 0, der Code lautet wie folgt:
#!/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
Das Ergebnis ist wie folgt:
20011 20021 20023 20029 20047 20051 20063 20071 20089 20101 20107 20113 20117 20123 20129 20143 20147 20149 20161 20173 ….
Mehr Python bestimmt Primzahlen (Primzahlen), bitte beachten Sie die PHP-Chinese-Website für detaillierte verwandte Artikel!