Wir entschuldigen uns für diese lästige und unsinnige Cookie-Warnung, die uns die EU-DSGVO und das BDSG (neu) seit Mai 2018 abverlangt! Natürlich verwendet archium "Cookies". Wir verwenden Cookies ausschließlich aus technischen Gründen, z.B. zum Speichern von Session-Parametern, damit wir selber uns nicht andauernd neu anmelden müssen, wenn wir an der eigenen Seite basteln. Für den Inhalt der Besucher-Cookies interessieren wir uns nicht; wir haben in 12 Jahren nicht eine einzige individuelle Besucher-Information abgegriffen und werden das auch zukünftig nicht tun. Die die Durchsetzung des Datenschutzes überwachenden Aufsichtsbehörden der Länder 👁👁 erwarten jetzt von Ihnen, daß Sie Ihr Einverständnis mit unseren Cookies erklären und die Verantwortung für Ihr Handeln übernehmen indem Sie auf "Okay" klicken: Weitere Informationen

BenchmarkPzfPy

Aus archium
Wechseln zu:Navigation, Suche
#!/usr/bin/pypy3

from math import sqrt
from time import time

def isPrim(n):
	if n <= 2 and n > 0:
		return True
	elif n % 2 == 0:
		return False # Gerade Zahlen > 2 sind keine Primzahlen
	else:
		for i in range(3, int(sqrt(n)), 2):
			if n % i == 0:
				return False
		return True

def main():
	testzahl = 12361423
	treffer = False

	t0 = time()
	for peins in range(1, testzahl, 2):
		if treffer == True:
			break
		elif isPrim(peins) == True:
			for pzwei in range(1, testzahl, 2):
				if isPrim(pzwei) == True:
					if testzahl == (peins * pzwei):
						print("[Py1] Erfolgreich beendet bei %d * %d = %d" % (peins, pzwei,  testzahl))
						treffer = True
						break
					elif testzahl < (peins * pzwei):
						break
	t1 = time()
	print("[Py1] Iterative Ermittlung: %.3f Sekunden\n" % (t1 - t0) )

	t2 = time()
	for peins in range(testzahl - 1, 0, -1):
		if isPrim(peins):
			pzwei = int(testzahl / peins)
			if testzahl % peins == 0 and isPrim(pzwei):		
				print("[Py2] Erfolgreich beendet bei %d * %d = %d" % (pzwei, peins,  testzahl))
				break
	t3 = time()
	print("[Py2] Iterative Ermittlung mit Division (Benischek-Verfahren): %.3f Sekunden\n" % (t3 - t2))

if __name__ == "__main__":
	main()