// Я должен делать это с помощью циклов и утверждений решений, но он не работает. Помогите!Программа должна определить, является ли входной номер простым или нет.
import java.util.Scanner;
public class main {
/**
* @param args
*/
public static void main(String[] args) {
//Declare variables
Scanner abc;
abc = new Scanner (System.in);
int input;
int divide = 2;
int count=0;
//Ask for input
System.out.println("Please enter an integer to determine if it is prime");
input = abc.nextInt();
//Do math
for (int x=1; x < input; x++) {
if ((input%divide) == 0)
count += 1;
divide = divide + 1;
}
if (count == 0)
System.out.println("It is a prime number");
else
System.out.println("It is not a prime number");
}
}
Что не работает? Также вам нужно всего лишь перейти к квадратному корню из числа – exussum
Говоря строго об эффективности, вы можете сначала проверить, нет ли даже проверки 'if (input% 2 == 0)' (если это так,), а затем проверить только нечетные числа (начиная с 3) до квадратного корня из проверенного числа. – 3yakuya
Я бы сделал некоторые исследования; эта проблема была решена древними греками. Ищите сито Эратосфена: http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes – duffymo