Der grund für range(2,n) und nicht range(2,n,2) ist das bei letzterem Zahlen wie "9",.. auch in die Liste kommen.
Ist doch auch kein Wunder, denn range(2,n,2) erzeugt eine Liste der Form [2,4,6,8,...], also alle geraden Zahlen bis n-1. Deshalb habe ich ja auch range(3, n//2, 2) vorgeschlagen, dass ...
Die Suche ergab 16 Treffer
- Donnerstag 6. September 2012, 20:20
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
- Donnerstag 6. September 2012, 18:03
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Okay ich habe jetzt das hier stehen:
def ist_prim(n):
for teiler in range(2,n):
if n % teiler == 0 and n != 2:
return False
return True
Der grund für range(2,n) und nicht range(2,n,2) ist das bei letzterem Zahlen wie "9",.. auch in die Liste kommen.
n//2 ist zwar sinnvoll, aber das habe ich ...
def ist_prim(n):
for teiler in range(2,n):
if n % teiler == 0 and n != 2:
return False
return True
Der grund für range(2,n) und nicht range(2,n,2) ist das bei letzterem Zahlen wie "9",.. auch in die Liste kommen.
n//2 ist zwar sinnvoll, aber das habe ich ...
- Donnerstag 6. September 2012, 16:35
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Wenn du schon auf optimierungen bedacht bist(`range(,, 2)`), kannst du auch das wissen ausnutzen, dass du sammelst.
Und ploetzlich ist `is_prime` ziemlich kurz - natuerlich sollte man die aktuelle Primzahlliste uebergeben:
def is_prime(n, lower_primes=[2]):
return all((n % lower != 0) for lower ...
Und ploetzlich ist `is_prime` ziemlich kurz - natuerlich sollte man die aktuelle Primzahlliste uebergeben:
def is_prime(n, lower_primes=[2]):
return all((n % lower != 0) for lower ...
- Donnerstag 6. September 2012, 15:38
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Hmm..
ich habe mal nochmal drüber nachgedacht und kam drauf das mein Weg die Aufgabe zu lösen sehr schwer und falsch ist, als ich mir die Aufgabenstellung nochmal durchgelesen habe..
Jetzt habe ich es nochmal versucht und das kam dabei raus:
def ist_prim(n):
teiler = 1
while teiler <= n // 2 ...
ich habe mal nochmal drüber nachgedacht und kam drauf das mein Weg die Aufgabe zu lösen sehr schwer und falsch ist, als ich mir die Aufgabenstellung nochmal durchgelesen habe..
Jetzt habe ich es nochmal versucht und das kam dabei raus:
def ist_prim(n):
teiler = 1
while teiler <= n // 2 ...
- Mittwoch 5. September 2012, 22:04
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
So. Ich habs jetzt endlich geschafft. Ich bedanke mich für eure Hilfe, ganz besonders bei dir darktrym.
Meine fertige Funktion sieht nun so aus:
primliste = [2]
for zahl in range(3,eingabe):
for teiler in primliste:
if zahl < teiler:
break
if zahl % teiler == 0:
break
primliste.append(zahl ...
Meine fertige Funktion sieht nun so aus:
primliste = [2]
for zahl in range(3,eingabe):
for teiler in primliste:
if zahl < teiler:
break
if zahl % teiler == 0:
break
primliste.append(zahl ...
- Mittwoch 5. September 2012, 21:05
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Prinzipiell schon, dein Code wirft aber wahrscheinlich einen NameError. Und noch zwei Dinge, die mir aufgefallen sind: Du solltest dir angewöhnen nicht gleich wegen jedem Kleinkram zu fragen, wie willst du sonst etwas lernen? Sieben Minuten von einem Hinweis bis zum abschicken einer Antwort, machen ...
- Mittwoch 5. September 2012, 20:52
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Du sollst dir die Zwischenergebnisse ausgeben lassen, so siehst du, was du falsch gemacht hast.
Zu dem if: for-Schleifen kann man noch einen else-Block anfügen, welcher genau dann ausgeführt wird, wenn man die Schleife nicht mit break verlassen hat. Jetzt kannst du dir ja mal überlegen, was das ...
Zu dem if: for-Schleifen kann man noch einen else-Block anfügen, welcher genau dann ausgeführt wird, wenn man die Schleife nicht mit break verlassen hat. Jetzt kannst du dir ja mal überlegen, was das ...
- Mittwoch 5. September 2012, 20:40
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Alle 3? Also auch das mit if?darktrym hat geschrieben:1.) Klar doch.
2.) Ersetze mal die Fragezeichen durch print Anweisungen. Und probier's mal mit Eingabe von 30.
Und was soll denn ausgegeben werden?
Und was bringt das wenn ich etwas ausgebe?
- Mittwoch 5. September 2012, 20:24
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
primes = [2]
last = int(input("number: "))
for number in xrange(3, last, 2):
(?1)
for test in primes:
if number % test == 0:
(?2)
break
if (?3):
primes.append(number)
print primes
Ich habs so gelöst, nun musst du nur noch die Fragezeichen klären ;)
Okay dafür danke ich dir schonmal ...
last = int(input("number: "))
for number in xrange(3, last, 2):
(?1)
for test in primes:
if number % test == 0:
(?2)
break
if (?3):
primes.append(number)
print primes
Ich habs so gelöst, nun musst du nur noch die Fragezeichen klären ;)
Okay dafür danke ich dir schonmal ...
- Mittwoch 5. September 2012, 19:58
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Ja okay. Aber ich weiß nicht wo ich die hinsetzten soll und bin mir sicher es gibt auch eine andere Lösung.webspider hat geschrieben:Passend eingestreute print-Anweisungen sind ebenfalls eine primitive, aber sehr hilfreiche Debuggingmethode.
- Mittwoch 5. September 2012, 19:56
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Du musst schon prüfen ob die zu untersuchende Zahl auch ja keinen Teiler hat in der Liste deiner bereits gefunden Primzahlen.
Im Prinzip zwei in sich geschachtelte for-Schleifen, die äußere iteriert über alle Zahlen, die innere über die Elemente aus primliste. Die Abbruchbedingung hast du bereits ...
Im Prinzip zwei in sich geschachtelte for-Schleifen, die äußere iteriert über alle Zahlen, die innere über die Elemente aus primliste. Die Abbruchbedingung hast du bereits ...
- Mittwoch 5. September 2012, 19:15
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Okay,
du hast eine Liste mit einem Element 2.
Nun testet du ob:
3 - kein Teiler, also prim, ab in Liste(2,3)
4 - hat 2 als Teiler, entsorgen
5 - kein Teiler, ab in Liste(2,3,5)
6 - Teiler 2, entsorgen
7 - kein Teiler, ab in Liste(2,3,5,7)
8 - Teiler 2, entsorgen
9 - Teiler 3, entsorgen
...
Du ...
du hast eine Liste mit einem Element 2.
Nun testet du ob:
3 - kein Teiler, also prim, ab in Liste(2,3)
4 - hat 2 als Teiler, entsorgen
5 - kein Teiler, ab in Liste(2,3,5)
6 - Teiler 2, entsorgen
7 - kein Teiler, ab in Liste(2,3,5,7)
8 - Teiler 2, entsorgen
9 - Teiler 3, entsorgen
...
Du ...
- Mittwoch 5. September 2012, 19:03
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Stichwort: Sieb des Erastothenes.
Wie du testest ob eine Zahl prim ist, ergibt sich aus der Definition: Sie ist nur durch sich selbst und 1 restlos teilbar. Die naive Loesung ist also eine Schleife in einer Schleife zu benutzen. Mit ein paar Optimierungen ist man dann schnell an erwaehntem ...
Wie du testest ob eine Zahl prim ist, ergibt sich aus der Definition: Sie ist nur durch sich selbst und 1 restlos teilbar. Die naive Loesung ist also eine Schleife in einer Schleife zu benutzen. Mit ein paar Optimierungen ist man dann schnell an erwaehntem ...
- Mittwoch 5. September 2012, 18:56
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Du hast eine Liste aller gefunden Primzahlen bis n.
Also müsste jede weitere Zahl(n+1), sofern sie eine Primzahl ist, nicht teilbar sein durch Elemente aus dieser Liste.
Die Liste habe ich nicht.
Den zweiten Satz versteh ich nicht ganz. Sofern eine Zahl eine Primzahl ist ist sie doch sowieso ...
Also müsste jede weitere Zahl(n+1), sofern sie eine Primzahl ist, nicht teilbar sein durch Elemente aus dieser Liste.
Die Liste habe ich nicht.
Den zweiten Satz versteh ich nicht ganz. Sofern eine Zahl eine Primzahl ist ist sie doch sowieso ...
- Mittwoch 5. September 2012, 18:30
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Re: Problem mit einer Aufgabe
Also hier in Forum finde ich nur die 3 Themen (Sage - Primzahl;Primzahl;Zahl kleiner machen durch ZAHL % PRIMZAHL). In Wikipedia finde ich zwar schon etwas, jedoch Hilft mir das nicht, weil es nicht zur Aufgabenstellung passt.
- Mittwoch 5. September 2012, 18:14
- Forum: Allgemeine Fragen
- Thema: Problem mit einer Aufgabe
- Antworten: 40
- Zugriffe: 3474
Problem mit einer Aufgabe
Guten Tag,
ich bin ein Schüler und habe Informatikunterricht. Bis jetzt hatte ich nie Probleme damit, die Aufgaben meines Lehrers zu lösen. Heute aber haben wir eine ganz schön schwere Aufgabe bekommen. Ich erwarte nicht das ihr mir die Lösungen gebt und das will ich auch nicht! Ich hoffe nur ihr ...
ich bin ein Schüler und habe Informatikunterricht. Bis jetzt hatte ich nie Probleme damit, die Aufgaben meines Lehrers zu lösen. Heute aber haben wir eine ganz schön schwere Aufgabe bekommen. Ich erwarte nicht das ihr mir die Lösungen gebt und das will ich auch nicht! Ich hoffe nur ihr ...
