mal wieder Primzhalen mit dem Sieb bestimmen
-
Hallo, ich habe schon gesehen, es gibt hier mehrere threads zu.
Ich will dieses Programm mal auf billige Weise Lösen.also hier mein code
# include <stdio.h> # include <conio.h> int main (void) { int prim[1000]; int i=1,j=1; for (i=1;i<=100;i++) {prim[i]=i;} //initialisieren Diese Konstruktion soll das Feld mit den zahlen von 1 bis 100 initialisieren. mit dieser Konstruktion möchte ich alle Zahlen streichen. Während des ersten Durschlaufs hat i den Wert 2 und j den Wert 2 J streicht dann in 2er schritten alle Vielfachen von 2. Im Zweiten Durschlauf sollen alle vielfachen von 3 gestrichen werden. I hat den Wert 3 und j wahrscheinlich den falschen wert. Wo genau liegt der Fehler in der Schleife. for (i=2;i<=50;i++) { while (j<100) { prim[j]=0; j+=i; } } //hier sollen dann alle Werte ausgegeben werden, die mit prim[j]=0 auf 0 gesetzt wurden }
hat jemand eine Ahnung was genau an der Schleife falsch ist?
-
Ich habe die Lösung selber gefunden
# include <stdio.h> # include <conio.h> void main () { const int anz=12; int prim[anz]; int i=0,j=2; for (i=1;i<=12;i++) {prim[i]=i; printf ("\nprim ist %i",prim[i]); } for (j=2;j<=6;j++) { i=j; while (i<12) { i+=j; printf ("\nI hat den wert %i",i); prim[i]=0; } getch(); } for (i=2;i<=12;i++) { printf ("\nprim ist %i",prim[i]); } }