Java >> Tutoriel Java >  >> Java

Programme Java pour trouver un nombre premier

Un nombre est appelé un nombre premier s'il n'est divisible que par lui-même et un. Cela signifie que les nombres premiers n'ont que deux facteurs un et lui-même.

Un nombre est appelé un nombre composé s'il a plus de deux facteurs.

Un point à noter ici est que 1 n'est ni un nombre premier ni un nombre composé.

Conditions pour qu'un nombre soit premier :

  1. Il doit être supérieur à un.

  2. Il ne devrait pas avoir plus de 2 facteurs.

Voici quelques-uns des premiers nombres premiers :{2,3,5,7,11,....}.

Dans ce tutoriel, nous allons apprendre à trouver des nombres premiers en Java. Mais avant d'aller plus loin, si vous n'êtes pas familier avec le concept de boucles en Java, alors consultez l'article sur les boucles en Java

Saisie : Saisissez le numéro :34

Sortie : 34 n'est pas un nombre premier.

Programme 1 :Trouver un nombre premier en Java

Dans ce programme, nous vérifierons si le nombre saisi est premier ou non en utilisant une boucle for qui ira de 2 à la racine carrée de ce nombre.

Algorithme :

  1. Démarrer

  2. Créez une instance de la classe Scanner.

  3. Déclarez une variable.

  4. Demander à l'utilisateur d'initialiser la variable.

  5. Appelez une méthode qui vérifiera si le nombre saisi est premier ou non.

  6. Si le nombre est 0 ou 1, imprimez ce n'est pas un nombre premier.

  7. Si le nombre est différent de 0 et 1, exécutez une boucle for de 2 à la racine carrée de ce nombre.

  8. Si le nombre est divisible par l'un des nombres de cette boucle, imprimez-le comme n'étant pas un nombre premier.

  9. Si le nombre n'est divisible par aucun des nombres de cette boucle, imprimez-le comme un nombre premier.

  10. Arrêtez.

Ci-dessous le code Java pour trouver le nombre premier.

// Program to find prime number in Java
import java.util.Scanner;
public class Main 
{  
   public static void main(String[] args) 
   {  
       Scanner sc = new Scanner(System.in);  
       System.out.println("Enter a number : ");  
       int num = sc.nextInt();  
       if (checkPrime(num)) {  
           System.out.println(num + " is a prime number");  
       }
       else 
       {  
           System.out.println(num + " is not a prime number");  
       }  
   }  
   public static boolean checkPrime(int num) 
   {  
       if (num <= 1) 
       {  
           return false;  
       }  
       for (int i = 2; i < Math.sqrt(num); i++) 
       {  
           if (num % i == 0) 
           {  
               return false;  
           }  
       }  
       return true;  
   }  
}  


Entrez un nombre :245
245 n'est pas un nombre premier

Programme 2 :Trouver un nombre premier en Java

Dans ce programme, nous allons vérifier si le nombre saisi est premier ou non à l'aide d'une boucle for qui ira de 2 à nombre/2.

Algorithme :

  1. Démarrer

  2. Créez une instance de la classe Scanner.

  3. Déclarez une variable.

  4. Demander à l'utilisateur d'initialiser la variable.

  5. Si le nombre est 0 ou 1, imprimez ce n'est pas un nombre premier.

  6. Si le nombre est différent de 0 et 1, exécutez une boucle for de 2 à number/2.

  7. Si le nombre est divisible par l'un des nombres de cette boucle, imprimez-le comme n'étant pas un nombre premier.

  8. Si le nombre n'est divisible par aucun des nombres de cette boucle, imprimez-le comme un nombre premier.

  9. Arrêtez.

Ci-dessous le code Java pour trouver le nombre premier.

// Program to find prime number in Java
import java.util.Scanner;
public class Main 
{  
   public static void main(String[] args) 
   {  
       //Take input from the user
       //Create instance of the Scanner class
       Scanner sc = new Scanner(System.in);  
       System.out.println("Enter a number : ");  
       int num = sc.nextInt();  
       int flag=0; 
       int i, temp=num/2;      
       if(num==0||num==1)
       {  
          System.out.println(num+" is not prime number");      
       }
       else
       {  
         for(i=2;i<=temp;i++)
         {      
           if(num%i==0)
           {      
               System.out.println(num+" is not a prime number");      
               flag=1;      
               break;      
           }      
         }      
         if(flag==0)  
         { 
             System.out.println(num+" is a prime number");  
         }  
        }//end of else  
   }   
}  


Entrez un nombre :29
29 est un nombre premier

Programme 3 :Programme Java pour trouver le nombre premier

Dans ce programme, nous utiliserons la récursivité pour vérifier si un nombre est premier ou non.

Algorithme :

  1. Démarrer

  2. Créez une instance de la classe Scanner.

  3. Déclarez une variable.

  4. Demander à l'utilisateur d'initialiser la variable.

  5. Utilisez une fonction récursive pour vérifier si le nombre est premier ou non.

  6. Appelez récursivement cette fonction pour vérifier si ce nombre est divisible par un autre nombre.

  7. Si le nombre n'est divisible par aucun autre nombre à l'exception de 1 et de lui-même, imprimez-le comme un nombre premier.

  8. Sinon imprimer le nombre saisi n'est pas un nombre premier.

  9. Arrêtez.

Ci-dessous le code Java pour trouver un nombre premier.

// Program to find prime number in Java using recursion
import java.util.Scanner;
public class Main 
{  
    static int i=2;
   public static void main(String[] args) 
   {  
       //Take input from the user
       //Create instance of the Scanner class
       Scanner sc = new Scanner(System.in);  
       System.out.println("Enter the number: ");  
       int num = sc.nextInt();  
      
       if (checkPrime(num)) 
        {  
               System.out.print(num+" is a prime number ");  
        }
        else
        {
            System.out.println(num+" is not a prime number "); 
        }
         
   }  
    static boolean checkPrime(int num)
    {
       // Corner cases
       if (num == 0 || num == 1) 
       {
          return false;
       }
       // Checking Prime
       if (num == i)
           return true;
        // Base cases
       if (num % i == 0) 
       {
          return false; 
             
       }
       i++;
       return checkPrime(num);
    }    
} 


Entrez le nombre :57
57 n'est pas un nombre premier


Balise Java