Hi, habe hier ein Programm welches aus einem Feld mit beliebig vielen Zahlen die groesste Primzahl herausliest und ausgibt. Das klappt nur bei Arrays die kleiner als 8 sind. Ab 8 wird immer "0" ausgegeben. Ich finde den Fehler leider überhaut nicht, hoffe dass ihr mir helfen könnt ..
mfg
und hier halt noch die Ausgaben:
einmal mit einem Array der Groesse 7:
und mit einem Array der Groesse 8:
mfg
Java:
public class Groesste_Prim { // Fehler: ab 8 Indizes wird immer 0 ausgegeben !!
public static int biggestPrim(int[] array)
{
int groessteprim = 0;
int[] primzahlen = new int[array.length];
int index = 0;
// Schritt 1: Primzahlen heraussuchen und in ein eigenes Array schreiben
for (int i = 0; i < array.length; i++)
{
boolean istprim = true;
if (array[i] == 1)
istprim = false;
//teilerschleife
for (int j = 2; j < array.length; j++)
{
if ( array[i] % j == 0)
istprim = false;
}
//schreibe Primzahl in Array
if (istprim == true)
{
primzahlen[index] = array[i];
index++;
}
}
// Schritt 2: Groesste Primzahl heraussuchen
for (int i = 0; i < primzahlen.length; i++)
{
if (groessteprim < primzahlen[i])
groessteprim = primzahlen[i];
}
return groessteprim;
}
public static void main (String args[])
{
//Abfrage: Anzahl der Zahlen
System.out.println("Anzahl der Zahlen:");
int anzahl = io.read_int();
int[] array = new int[anzahl];
//Eintragen der Werte
for (int i = 0; i < anzahl; i++)
{
System.out.println("Wert-Nr."+(i+1)+":");
array[i] = io.read_int();
}
//Suchen der größten Primzahl
int prim = biggestPrim(array);
System.out.println("\nGroesste Primzahl: "+prim);
}
}
und hier halt noch die Ausgaben:
einmal mit einem Array der Groesse 7:
Java:
Anzahl der Zahlen:
7
Wert-Nr.1:
3
Wert-Nr.2:
4
Wert-Nr.3:
5
Wert-Nr.4:
6
Wert-Nr.5:
7
Wert-Nr.6:
8
Wert-Nr.7:
9
Groesste Primzahl: 7
und mit einem Array der Groesse 8:
Java:
Anzahl der Zahlen:
8
Wert-Nr.1:
2
Wert-Nr.2:
3
Wert-Nr.3:
4
Wert-Nr.4:
5
Wert-Nr.5:
6
Wert-Nr.6:
7
Wert-Nr.7:
8
Wert-Nr.8:
9
Groesste Primzahl: 0