Heim  >  Artikel  >  Backend-Entwicklung  >  Einfache Möglichkeit, Primzahlen (Primzahlen) mit Python zu ermitteln

Einfache Möglichkeit, Primzahlen (Primzahlen) mit Python zu ermitteln

高洛峰
高洛峰Original
2017-03-02 17:32:2825559Durchsuche

In diesem Artikel wird hauptsächlich die einfache Methode zur Verwendung von Python zur Bestimmung von Primzahlen (Primzahlen) vorgestellt. Python, das häufig für wissenschaftliche Berechnungen verwendet wird, ist natürlich einfach, solche kleinen Probleme zu lösen ^_- Freunde, die es benötigen, können sich darauf beziehen dazu

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 gelegentlich, wie man Primzahlen ermittelt, und fasste mehrere Methoden von Python-Skripten zusammen, um festzustellen, ob eine Zahl Primzahlen ist:

1. Verwenden von Python-Mathematikfunktionen

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 scannt 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 Itertools-Modul von Python

from itertools import count 
def isPrime(n): www.jb51.net
  if n <= 1: 
    return False 
  for i in count(2): 
    if i * i > n: 
      return True 
    if n % i == 0: 
      return False

3. 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


Beispiel: Finden Sie die Primzahl (Primzahl) zwischen 20001 und 40001
Da sie nur durch 1 oder sich selbst geteilt werden kann, bedeutet dies, dass es nur 2 Zeiten gibt, in denen der Rest 0 ist 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

Die Ergebnisse sind wie folgt:

20011
20021
20023
20029
20047
20051
20063
20071
20089
20101
20107
20113
20117
20123
20129
20143
20147
20149
20161
20173
….

Mehr mit Python. Für einfache verwandte Artikel zur Beurteilung von Primzahlen (Primzahlen) achten Sie bitte auf die chinesische PHP-Website!


Stellungnahme:
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