Heim > Backend-Entwicklung > Python-Tutorial > Ausführliche Erklärung einer einfachen Methode zur Bestimmung von Primzahlen (Primzahlen) in Python

Ausführliche Erklärung einer einfachen Methode zur Bestimmung von Primzahlen (Primzahlen) in Python

高洛峰
Freigeben: 2017-03-06 13:25:25
Original
5119 Leute haben es durchsucht

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
Nach dem Login kopieren

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)] ]
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

 
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
Nach dem Login kopieren

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
….
Nach dem Login kopieren

Mehr Python bestimmt Primzahlen (Primzahlen), bitte beachten Sie die PHP-Chinese-Website für detaillierte verwandte Artikel!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage