Primzahlen
-
Hallo
Also ich habe ein kleines Problem und zwar ich muss ein Programm schreiben, das alle Primzahlen von 2 bis eine beliebige Schranke ausgibt. Ich bin soweit gekommen:int gr; int x=2; int y=2; bool z; printf("Zahl?"); scanf_s("%i", &gr); while(x<=gr){ z=false; while(y<x){ if (x%y!=0){ z=true; } y++; } if(z=true){ printf("%i,", x); x++; } } return 0; }
Aber was ausgegeben wird, sind die Zahlen von 2 bis die Schranke (in dem Fall gr). Kann einer vielleicht den Fehler sehen ? Wäre ich sehr dankbar sein
-
denk nochmal nach:
einmal kann y<x nicht funktionieren (sie sind doch beide 2), der compiler kann also niemals in die innere schleife reinkommen, und daher auch z niemals true werden;
und deine ausgaben bekommst du nur, weil du einen fehler im vergleich hast:
statt z=true schreibe z==true.feil an der logik
-
achso ja
stimmt, aber jetzt gehts wieder nicht haha
mann..
-
es gibt viele, die x modulo y ungleich null sind...
-
Ich habs korrigiert und wenn ich mit 3 anfange (x=3) dann passt alles. Das problem ist aber, dass 2 auch eine Primzahl ist. Soll ich sie einfach extra ausgeben?