HI,
ich hab mir nen primzahlen checker gemacht... funzt super (ist aber wsl nicht die eleganteste Lösung - aber egal)
Jedenfalls bekomme ich ab ~2100000000 folgenden Fehlercode in Eclipse:
Ich vermute es hat was damit zu tun das ich int´s benutze oder? Da war mal was mit Speicherplatz Größen von Ints und co^^ des hab ich nie so recht verstanden Ist das hier das Problem? muss ich das jetzt lernen?^^
Hier mein Prog:
Danke für Infos
ich hab mir nen primzahlen checker gemacht... funzt super (ist aber wsl nicht die eleganteste Lösung - aber egal)
Jedenfalls bekomme ich ab ~2100000000 folgenden Fehlercode in Eclipse:
Code:
Prüfzahl: 2200000000
Exception in thread "main" java.util.InputMismatchException: For input string: "2200000000"
at java.base/java.util.Scanner.nextInt(Scanner.java:2264)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at kartenspiel.prim3checker2.main(prim3checker2.java:15)
Ich vermute es hat was damit zu tun das ich int´s benutze oder? Da war mal was mit Speicherplatz Größen von Ints und co^^ des hab ich nie so recht verstanden Ist das hier das Problem? muss ich das jetzt lernen?^^
Hier mein Prog:
Java:
package kartenspiel;
import java.util.Scanner;
public class prim3checker2 {
public static void main(String[] args) {
Scanner eingabewert = new Scanner(System.in);
System.out.print("Prüfzahl: ");
int a;
a = eingabewert.nextInt();
System.out.print("Suche nach Teilern für "+a+" ohne Restwert: ");
int b = a;
int ac;
int ax; //wohl teiler
int p = 0; //zähler, wird erhöht wenn nenner durch zähler teilbar ist ohne rest
while (a == b) { //während a gleich b ist tue:
ac = a;
ax = a;
while (ax >= 1) { //Whärend ax größer gleich 1 ist, tue:
if (ac % ax == 0 && ax != ac && ax != 1) { p++; //WENN Rest von ac druch ax null ist UND ac NICHT GLEICH ax ist UND ax nicht gleich 1 ist P+1
System.out.print(ax +", "); }
// ALSO Zahl ist ohen rest teilbar und aber nicht durch sich selber und nicht durch 1 P+1
if (ax == 1 && p >= 1) { System.out.println("fertig.");} //damit nach aufzählung der teilern nicht ein Komma steht.
if (ax == 1 && p == 0) { System.out.println(" ...keine Teiler ohne Rest gefunden.");} //WENN ax 1 ist UND P 1 ist (WSL ÜBerflüssig)
ax--; //ax minus eins TEILER
} // ende erste whileschleife
b++; //erhöhe b damit erste schleife beendet wird
} //ende zweiute schleife
System.out.println(" ");
System.out.println(a + " ist neben 1 und sich selbst durch "+p + " Zahlen teilbar.");
if (p >= 1) {System.out.println("Daher ist "+ a+ " KEINE Primzahl...");
} else { System.out.println("Somit ist "+a+ " eine Primzahl!");}
}
}
Danke für Infos