Die ersten 1000 Zahlen auf Primzahlen absuchen ....

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
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

sooo .... heute tut das alles sehr weh xD

die 'all()'-Funktion ist wahrscheinlich genau das, was ich mit "Ich denke an 'and' Befehle, muesste diese dann aber ja jeweils n[1], [2], .... zuordnen. :?:?:?
Vielen Dank dafuer.

Als list comprehension habe ich es jetzt gaube ich hinbekommen .... als funktion leider NOCH nicht .... :/

Code: Alles auswählen

from math import sqrt

def is_prime(n):
    if all(n % i != 0 for i in range(2, (int(sqrt(n))+1))):
        return True
    return False
    
primes = []

for i in range(1, 1001):
    if is_prime(i) == True:
        primes.append(i)

print(primes)

1, 2 und 3 sind dabei mit im Ergebnis, weil != 0 sondern 'None' mangels range ausgegeben wird, nech?
Benutzeravatar
__blackjack__
User
Beiträge: 13111
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@c.burkes: Ähm, `all()` gibt `True` oder `False` zurück. Und wenn `all()` `True` ergibt, gibst Du `True` zurück. Ansonsten `False`. Da kannst Du Dir doch das ``if`` sparen und gleich das Ergebnis von `all()` zurückgeben.

Man vergleicht keine Wahrheitswerte mit ``==`` oder ``!=`` mit literalen Wahrheitswerten. Da kommt doch bloss wieder ein Wahrheitswert bei heraus. Also entweder den, den man sowieso schon hatte, oder dessen Gegenteil. Also kann man den auch gleich nehmen, oder ihn noch mit ``not`` negieren, je nach dem welchen Wert man in der Bedingung braucht.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
c.burkes
User
Beiträge: 58
Registriert: Montag 4. Februar 2019, 11:38

Code: Alles auswählen

from math import sqrt

def is_prime(n):
    return all(n % i != 0 for i in range(2, (int(sqrt(n))+1)))
    
primes = []

for i in range(1, 1001):
    if is_prime(i):
        primes.append(i)

print(primes)
ah nice minimalistisch :thumb_up
Antworten