Мне нужно создать программу на Java, которая определяет, является ли число простым.Определение простого числа по пользовательскому вводу с использованием рекурсивного метода
Пользователь должен ввести любое число, и программа определит, является ли это простой или нет, и отображает «не просто» или «просто». Мой код теперь компилируется и запускается, но он всегда говорит, что число не является простым, даже если оно есть.
import java.util.Scanner;
public class PrimeNumber
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
int constant = 0;
int variable = 0;
System.out.println("Enter a Number to test if Prime or Not");
constant = input.nextInt();
variable = constant;
double answer = 0.0;
answer = testPrime(constant, variable);
System.out.println(+answer);
if (answer == 1)
{
System.out.println(+constant + " is a prime number.");
}
else
{
System.out.println(+constant + " is NOT a prime number.");
}
}
public static double testPrime(int number, int divide)
{
double prime = 0.0;
prime = number%divide;
if (prime > 0 && divide != number)
{
return testPrime(number, divide - 1);
}
else
{
return prime;
}
}
}
Почему рекурсия? Для этого нет оснований использовать рекурсию. – nhahtdh
Вы должны использовать для этого целое число. Нет простых чисел с плавающей запятой, и это намного быстрее. –
Это простой способ вычисления простого числа. Вы должны посмотреть на Маленькую теорему Ферма [здесь] (http://www.wikihow.com/Check-if-a-Number-Is-Prime), а также некоторые другие алгоритмы, если вы хотите делать большие простые числа. – Suedocode