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);
}
Мне нужна помощь в попытке вывести пользователю, что введенное число является простым. Пока этот пример работает только для некоторых чисел. Программа считает, что 14 является простым, 12 - простое, 25 - простое, 35 - простое, 36 - простое, 39 - простое, а 34 - простое. Он получает некоторые цифры, правда. Он знает 8, 10, 12,18, а некоторые другие цифры не являются первичными.Попытка узнать, введен ли введенный номер пользователем java
Извините, вопросы, связанные с дампом кода и «пожалуйста, отлаживайте мой код для меня», считаются вне темы. Вы должны начать, перейдя через код по одной строке за раз в своем отладчике IDE. Вероятно, вы найдете проблему очень быстро. Если вы этого не сделаете, укажите линию, в которой поведение программы не соответствует вашему ожиданию, и задайте вопрос об этой ситуации. –
Возможный дубликат [Найти простое число?] (Http://stackoverflow.com/questions/1583413/find-a-prime-number) –