Déterminer le nombre premier par la saisie de l'utilisateur à l'aide de méthode récursive

J'ai besoin de créer un programme en Java qui détermine si un nombre est premier.

L'utilisateur doit entrer un nombre, et le programme permettra de déterminer s'il est premier ou non, et l'affichage "non prime" ou "le premier." Mon code compile et s'exécute, mais il dit toujours un nombre n'est pas premier, même si il est.

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;
   }
 }
}
  • Pourquoi la récursivité? Il n'y a pas de raison d'utiliser la récursivité pour ce.
  • Vous devez utiliser integer/ce. Il n'y a pas de point flottant sur les nombres premiers et c'est beaucoup plus rapide.
  • C'est une force brute façon de calculer un nombre premier. Vous devriez regarder le Petit Théorème de Fermat ici ainsi que quelques autres algorithmes, si vous voulez faire de grands nombres premiers.