public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int N = 0;
do {
System.out.println("How long should we search for primes? Until N=: ");
N = scan.nextInt();
} while (N <= 2); // gets the amount of prime numbers there are that go up to that number
//example, if user enters 20, the output will be that there are 8 prime numbers
boolean[] prime = new boolean[N +2];
for (int i = 2; i <= N; i++) {
prime[i] = true; //makes all values in the array true
}
for (int i = 2; i * i <= N; i++) {
if (prime[i]) {
for (int z = i; z * i <= N; z++) {
prime[i * z] = false; // makes the non prime numbers in the array false
int newCheck = 0;
do {
System.out.println("Enter a number to see if it is prime");
int go = 0;
newCheck = scan.nextInt(); //here's where i need help
} while (newCheck <= 1 || newCheck > N);
if(prime[newCheck]){ // if the number entered is true in the array, it is prime
System.out.println("It is prime");
int mPrime=(int)((Math.log(newCheck))/(Math.log(2)))-1;
if (prime[mPrime]){//ignore this, its for another part i need to do
System.out.println(""+newCheck+ "is a merseinne prime number! It equals 2^"+mPrime+ " -1");
}
}
else if (prime[newCheck]==prime[i*z]){ //if the number is equal to false in the array,
//it is not prime
System.out.println("It is not prime");
}
if(newCheck==0){
break;
}
}
}
}
int counterPrime = 0;
for (int i = 2; i <= N; i++) {
if (prime[i]) {
counterPrime++;
}
}
System.out.println("The number of primes less than or equal to " + N + " is " + counterPrime);
}
Ich brauche Hilfe bei dem Versuch, an den Benutzer auszugeben, dass die Nummer, die sie eingegeben haben, prime ist. Bis jetzt funktioniert dieses Beispiel nur für einige Zahlen. Das Programm denkt, 14 ist Primzahl, 12 ist Primzahl, 25 ist Primzahl, 35 ist Primzahl, 36 ist Primzahl, 39 ist Primzahl und 34 ist Primzahl. Es bekommt jedoch einige Zahlen richtig. Es kennt 8, 10, 12,18 und einige andere Zahlen sind nicht prim.Versucht zu sehen, ob die eingegebene Nummer in Java ist
Entschuldigen Sie, dass Fragen, die aus einem Code-Dump und "Debuggen Sie meinen Code für mich" bestehen, nicht als Thema angesehen werden. Sie sollten den Code Schritt für Schritt in Ihrem IDE-Debugger durchlaufen. Sie werden das Problem wahrscheinlich sehr schnell finden. Wenn Sie dies nicht tun, identifizieren Sie die Zeile, in der das Verhalten des Programms nicht Ihren Erwartungen entspricht, und stellen Sie eine Frage zu dieser Situation. –
Mögliches Duplikat von [Eine Primzahl finden?] (Http://stackoverflow.com/questions/1583413/find-a-prime-number) –