warum gibt mir das programm 6 als primzahl aus? ???:L nur auf Zeile 58 bis 111 achten der rest ist von dem rest deas Programms der bereits funktioniert!
Code:
import java.io.*;
public class Zufall
{
public static void main (String args[])
throws IOException
{{
int z;
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
System.out.println("Womit moechten sie arbeiten?");System.out.println();
System.out.println("(1) 'von Neumann-Generator'");
System.out.println("(2) 'Quadratrest-Generator'");
System.out.println("(3) 'Lineare Kongruenz-Generator'");
z = Integer.parseInt(br.readLine());
switch (z)
{
case 1:
// von-Neumann-Generator
int a, b;
System.out.println("Der'von Neumann-Generator'! ");
System.out.println();
System.out.println("Geben Sie eine Zahl zwischen 2 und 999999 ein!");
a = Integer.parseInt(br.readLine());
while (a<=2 || a>=999999)
{
System.out.println("Geben Sie eine Zahl zwischen 2 und 999999 ein!");
a = Integer.parseInt(br.readLine());
}
System.out.println("Geben Sie eine Zahl , die >0 ist,ein.");
b = Integer.parseInt(br.readLine());
while (b<1)
{
System.out.println("Geben Sie eine Zahl , die >0 ist,ein.");
b = Integer.parseInt(br.readLine());
}
while (b>0)
{
b=b-1;
if(a < 1000)
{
a=a*a;
}
else
{
a=a*a;
a=a%(10*10*10*10*10*10*10*10*10);
a=a%1000;
}
}
System.out.println("Die generierte Zahl lautet: "+a+"");
break;
case 2:
//Quadratrest-Generator
double c=1, d, e=3, f=3, g, h, i=1, y;
System.out.println("Der 'Quadratrest-Generator'! ");
System.out.println();
System.out.println("Geben Sie eine Primzahl ein");
c = Double.parseDouble(br.readLine());
while (c<2)
{
System.out.println("Das ist keine Primzahl!");
System.out.println("Geben Sie eine Primzahl ein");
c = Double.parseDouble(br.readLine());
}
while (c%2==0)
{
System.out.println("Das ist keine Primzahl!");
System.out.println("Geben Sie eine Primzahl ein");
c = Double.parseDouble(br.readLine());
}
for (e=3; e<c-1; e++)
{
if (c%e==0)
{
System.out.println("Das ist keine Primzahl!");
System.out.println("Geben Sie eine Primzahl ein");
c = Double.parseDouble(br.readLine());
}
}
System.out.println("Geben Sie eine zweite Primzahl ein!");
d = Double.parseDouble(br.readLine());
while (d<2)
{
System.out.println("Das ist keine Primzahl!");
System.out.println("Geben Sie eine Primzahl ein");
d = Double.parseDouble(br.readLine());
}
while (d%2==0)
{
System.out.println("Das ist keine Primzahl!");
System.out.println("Geben Sie eine Primzahl ein");
d = Double.parseDouble(br.readLine());
}
for (f=3; f<d-1; f++)
{
if (d%f==0)
{
System.out.println("Das ist keine Primzahl!");
System.out.println("Geben Sie eine Primzahl ein");
d = Double.parseDouble(br.readLine());
}
}
System.out.println("Geben Sie eine Zahl zwischen 2 und "+c*d+" als Startwert ein!");
g = Double.parseDouble(br.readLine());
while (g<3 || g>(c*d)-1)
{
System.out.println("Geben Sie eine Zahl zwischen 2 und "+c*d+" als Startwert ein!");
g = Double.parseDouble(br.readLine());
}
System.out.println("Geben Sie die Anzahl der Wiederholungen ein!");
h = Double.parseDouble(br.readLine());
while (h>0)
{
h=h-1;
g=g*g;
i=g%(c*d);
}
while (g<1)
{
System.out.println("Die Zahl muss groesser 0 sein!");
System.out.println("Geben Sie die Anzahl der Wiederholungen ein!");
g = Double.parseDouble(br.readLine());
}
System.out.println("Die generierte Zahl lautet: "+i+".");
break;
}}}}