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?


Anmelden zum Antworten