Moin,
ich komm aus der VB-Ecke und da bereche ich Hochzahlen so: 5^3
Das "^" ist aber in Python (und in allen andren Sprachen auch ) ein XOR!
Ich muss doch nicht wirklich 5*5*5 rechnen, oder?
mfg,
fiRe
Hochzahlen *schäm*
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi FiRe^,
es gibt auch die Builtinfunktion pow(x, y[, z])
pow(x, y) ist dabei gleichbedeutend mit x**y,
pow(x, y, z) entspricht (x**y) % z ist aber effizienter.
Gruß
Dookie
es gibt auch die Builtinfunktion pow(x, y[, z])
pow(x, y) ist dabei gleichbedeutend mit x**y,
pow(x, y, z) entspricht (x**y) % z ist aber effizienter.
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
Danke! Ich hab noch eine Frage. Also ich erstelle einen "Zufalls"-long int mit dem random-Modul und will nun prüfen ob es sich um eine Primzahl handelt:
Aber ich bekomme bei der Funktion IsPrime einen Overflow (OverflowError: long int too large to convert to int)
Wie kann ich das beheben? Oder gibts auch eine eingebaute Funktion zur Primzahlenprüfung?
Code: Alles auswählen
def IsPrime(Number):
for i in xrange(2, Number - 1):
if Number % i == 0: return False
return True
nr1, nr2 = pow(10, 200), pow(10, 300)
while 1:
myNumber = random.randint(nr1, nr2)
if IsPrime(myNumber):
break
Wie kann ich das beheben? Oder gibts auch eine eingebaute Funktion zur Primzahlenprüfung?
Du musst ja gar nicht alle Zahlen überprüfen, sondern nur bis zur Hälfte der Zahl, denn jede Zahl die größer ist als die Hälfte kann kein Teiler mehr sein.
fs111
fs111
Pydoc-Integration in vim - Feedback willkommen: http://www.vim.org/scripts/script.php?script_id=910
Hi!
@fs111: Selbst wenn ich die Zahl durch 2 Teile gibts noch einen Overflow
@Leonidas: Funktioniert der denn mit solch großen Zahlen?
@fs111: Selbst wenn ich die Zahl durch 2 Teile gibts noch einen Overflow
@Leonidas: Funktioniert der denn mit solch großen Zahlen?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich seh grad, nein.. interessant.. für's xrange brauche ich einen int und keinen long int..Anonymous hat geschrieben:@Leonidas: Funktioniert der denn mit solch großen Zahlen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hoi!
Als ich habs jetzt so gelöst:
Das sieht zwar super blöd aus, aber was solls..
Als ich habs jetzt so gelöst:
Code: Alles auswählen
def IsPrime(Number):
for i in xrange(999999999, int(math.sqrt(Number)) + 1, 2):
if Number % i == 0: return False
return True
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi,
Milan hat mal ein xrange für Longs gemacht:
http://python.sandtner.org/viewtopic.php?t=1366
Gruß
Dookie
Milan hat mal ein xrange für Longs gemacht:
http://python.sandtner.org/viewtopic.php?t=1366
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Cooler Code, muss ich bei Gelegenheit in meinen Benchmark einbauen und dann mal gucken.Dookie hat geschrieben:Milan hat mal ein xrange für Longs gemacht:
http://python.sandtner.org/viewtopic.php?t=1366
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice