# Werte in Array speicher



## disart (3. Dez 2006)

hallo zusammen,

ich hab ein kleines problem. ich habe in einer for schleife eine if bedingung die mir werte ausgibt.
sie prüft beispielsweise ob eine zahl von 0-10 durch 2 ganzahlig teilbar ist.
das wären in diesem fall dann die zahlen: 2, 4, 6, 8, 10
diese zahlen will ich nun in einem array speichern, wie kann ich das machen?
das array hab ich schon angelegt mit der länge 10.
ich weiß aber nicht wie ich die zahlen in dem array speichern kann.


----------



## flasche000 (3. Dez 2006)

```
int j=0;
for(int i=1;i<11;i++) {
  if((i%2)==0) {
     deinarray[j]=i;
     j++;
  }
}
```

speichert alle geraden zahlen(1-10) in deinarray


----------



## disart (3. Dez 2006)

also ich will nur bestimmte werte speichern,

das gesamte programm sieht so aus, dass ich ihm eine zahl gebe, wie z.b. 5 und das programm testet, ob die fünf eine primzahl ist. das funktioniert auch.
nun soll zusätzlich soll das programm nun schaun, ob es primzahlen von 0 bis 5 gibt, 
wie speichere ich die werte in einem array? also in diesem fall die 1,2,3.

```
public static void main(String[] args) {
		int n = 5;
		primzahl(n);
		int[]zahl = new int[n];
		// boolean Primzahl = true;
		int counter = 0;
		int m;
		for (m = n; m == n; m--) {

			for (int k = 1; k < m; k++) {
				int rest = m % k;
				if (rest == 0)
					counter++;
				if (counter <= 1)
					zahl[k] = counter;

	}
for (int i=0; i<n;i++){
	System.out.println(zahl[i]);
```


----------



## flasche000 (3. Dez 2006)

also ich verstehe das problem glaube ich nicht ganz....

aber erstmal zu deinem code:


```
for (m = n; m == n; m--)
```

der läuft doch die schleife nie durch...
wenn du m=n und dann solange bis m=n?????


jz deine frage...
du bekommst eine zahl und willst überprüefn ob die zahlen bis dorthin und die zahl selber eine primzahl ist??


----------



## disart (3. Dez 2006)

ja klar, vergiss den code, 

also, das ist die aufgabe:
Erweitern Sie den Algorithmus  in der Weise, daß alle Primzahlen ermittelt werden, die kleiner oder gleich der gegebenen Zahl n sind. Speichern Sie die ermittelten Primzahlen in einem Array und geben Sie diese am Ende auf den Bildschirm aus, wobei zusätzlich die Zahl n und die Anzahl der gefundenen Primzahlen mit einem entsprechenden Text ausgegeben werden sollen.

und das mein programm:

```
public class aufgabe_7 {
	public static void primzahl(int n) {
		boolean Primzahl = true;
		int counter = 0;
		for (int m = 1; m < n; m++) {
			int rest = n % m;

			if (rest == 0)
				counter++;
			if (counter > 1)
				Primzahl = false;

		}
		if (Primzahl)
			System.out.println("Die Zahl ist eine Primzahl");
		else
			System.out.println("NEIN! Die Zahl ist keine Primzahl");

	}
	public static void main(String[] args) {
		int n = 5;
		primzahl(n);

	}
}
```
das andere war ein kläglicher versuch, die oben genannte aufgabe zu lösen.
hast du ne ahnung wie man das machen könnte?
hab ewig rum probiert, komm aber auf keine lösung.


----------



## flasche000 (3. Dez 2006)

```
public class aufgabe_7 {
   public static void primzahl(int n) {
      int tmp=1;
      int[] prim= new int[n];
      int k=0;
      while(tmp!=n+1) {
    	  boolean primzahl=false;
    	  for (int m = 2; m < tmp; m++) {
    		  if((tmp%m)==0) break;
    		  else primzahl=true;
      	}
    	  if(primzahl) {
        	  prim[k]=tmp;
    		  k++;
    	  }
    	  tmp++;
      }
      for(int i=0;i<k;i++)
      System.out.println(prim[i]);
   }
   public static void main(String[] args) {
      int n = 5;
      primzahl(n);

   }
}
```

habs mal so probiert..
funktioniert aber auch noch nicht ganz...

*edit:* hab den code noch mal geändert....
so gehts besser[/b]


----------



## disart (3. Dez 2006)

sieht gut aus.
werd an deinem vorschlag mal ein bisschen rum probieren.
danke für deine hilfe


----------



## flasche000 (3. Dez 2006)

habs jz geschafft dass auch die 5 nur einmal angezeigt wird...

siehe oben
habe den alten code editiert.

viel glück noch beim probieren


----------



## disart (3. Dez 2006)

soo, habs jetzt endgültig geschafft,
so funktionierts, is allerdings etwas komplizierter geworden



```
public class aufgabe_7 {
	public static void primzahl(int n) {
		int[] prim = new int[n];
		int k = 0;
		int temp = n - 1;
		boolean Primzahl = true;
		boolean Primzahl1 = true;
		int counter = 0;
		int counter1 = 0;
		for (int m = 1; m < n; m++) {
			int rest = n % m;

			if (rest == 0)
				counter++;
			if (counter > 1)
				Primzahl = false;
			

			for (int l = 1; l < temp; l++) {
						
				int rest1 = (temp) % l;
				if (rest1 == 0)
					counter1++;
				if (counter1 > 1)
					Primzahl1 = false;

			}
			counter1=0;
			if (Primzahl1) {
				prim[k] = (temp);
				k++;
			}

			Primzahl1 = true;
			temp--;

		}

		if (Primzahl)
			System.out.println("Die Zahl" + " " + n + " ist eine Primzahl");
		else
			System.out.println("NEIN! Die Zahl ist keine Primzahl");

		for (int i = 0; i < prim.length; i++) {
			System.out.print(prim[i]+" ");
		}

	}

	public static void main(String[] args) {
		int n = 200;
		primzahl(n);

	}
}
```


----------

