Primzahlen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
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?
lunar

@problembär: Offenbar zu schwer für Dich selbst ...
Lexi
User
Beiträge: 2
Registriert: Montag 19. August 2019, 11:31

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
Lexi
User
Beiträge: 2
Registriert: Montag 19. August 2019, 11:31

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}")
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

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