007
05.01.2004, 20:27 Uhr
Pablo
Supertux (Operator)
|
Das Problem ist, dass deine Funktion nicht alle Fälle abdeckt. Alle Zahlen sind durch 1 Teilbar, d.h. x%1 ist immer 0. (Lassen wir jetzt x!=0 sein)
damit if (···) ausgeführt wird, muss alles wahr (true) sein. das heißt, links und rechts muss true stehen. z%1==0 ist true für alle Zahlen.
Alle Zahlen sind auch durch sie selbst teilbar, d.h. z%z ist stets 0 außer für 0, da 0%0 nicht definiert ist. Die zweite Bedingung ist ebengalls wahr.
Eine Primzam ist eine Zahl (außer 1), die nur1 und sich selbst als Teiler hat. Aber alle Zahlen erfüllen das. Aber viele Zahlen haben andere Zahlen, durch die sie auch teilbar sind, z.b. 8 hat nicht nur 8 und 1 als Teiler, sondern2 und 4. Und die Bedingung sagt, nur. Also, wenn du das negierst, kommt: eine Zahl x ist nicht prim, wenn es mind. eine Zahl gibt, die nicht 1 oder x ist und Teiler von x ist. Um auf Primzahlen zu prüfen müsstest du die Zahl nehmen und dich fragen, ob sie durch 2, 3, 4, .... usw. teilbar ist. Tip: wenn eine Zahl postiv ist, außer der 2, ist die Zahl nimmer prim. -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth! |