Seite 1 von 1

Re: Primzahlen

Verfasst: Mittwoch 3. August 2011, 12:18
von problembär
numerix hat geschrieben:
BlackJack hat geschrieben:@problembär: Dein `is_prim()` in C hält 0 und 1 auch für prim.
Seine Python-Fassung auch ... :)
Bin halt von mitdenkenden Menschen ausgegangen, die gar nicht erst versuchen, 0 und 1 auf Primzahlqualität zu überprüfen.
Man kann aber auch

Code: Alles auswählen

if (num < 2) {
    return 0;
}
einfügen. Is schwer, ne?

Re: Primzahlen

Verfasst: Mittwoch 3. August 2011, 12:30
von lunar
@problembär: Offenbar zu schwer für Dich selbst ...

Re: Primzahlen

Verfasst: Montag 19. August 2019, 11:39
von Lexi

Code: Alles auswählen

def prime(a):
	NPlist = []
	for i in range(2, round(m.sqrt(a)+1)):
		if a%i == 0:
			NPlist += [a]
			break
	if a not in NPlist:
		print(a, "{prime}")

Dies ist mein Lösungsvorschlag.
So wird eine Liste erstellt, in der a vorhanden ist, wenn diese nicht prim ist. Sollte a also prim sein, ist dieses nicht in der NPlist.


LG
Lexi

Re: Primzahlen

Verfasst: Montag 19. August 2019, 11:42
von Lexi

Code: Alles auswählen

 def prime(a):
	NPlist = []
	for i in range(2, round(m.sqrt(a)+1)):
		if a%i == 0:
			NPlist += [a]
			break
	if a not in NPlist:
		print(a, "{prime}")

Re: Primzahlen

Verfasst: Montag 19. August 2019, 12:20
von Jankie
Lexi hat geschrieben: Montag 19. August 2019, 11:42

Code: Alles auswählen

 def prime(a):
	NPlist = []
	for i in range(2, round(m.sqrt(a)+1)):
		if a%i == 0:
			NPlist += [a]
			break
	if a not in NPlist:
		print(a, "{prime}")
Hey,

der Code mag zwar funktionieren (keine Fehlermeldung), gut lesbar ist er aber nicht. a, i und NPlist sind keine guten Variablennamen, da diese nichts sagend sind. Auch Datentypen wie "list" sollen eigentlich nicht in einem Variablenamen vorkommen, da sich das ja stets ändern kann. Laut PEP8 Style Guide wird alles in Python klein_mit_unterstrich geschrieben, außer Klassen (werden in MixedCase) und Konstaten (KOMPLETTGROSS). Einrücken sollte man mit 4 Leerzeichen und nicht mit Tabs.

Wenn ich die Funktion mit 25 aufrufe, bekomme ich folgendes als Ausgabe:

Code: Alles auswählen

25 {prime}
25 {prime}
25 {prime}
Also drei Mal eine Ausgabe, aber 25 ist keine Primzahl.