Java >> Tutoriel Java >  >> Java

Numéro d'espionnage en Java

Dans cet article, nous allons développer un programme Java pour vérifier si le numéro donné est un numéro espion ou non ? Nous développerons également un programme Java pour trouver tous les numéros d'espionnage existant entre deux numéros donnés.

Un nombre dont la somme des chiffres de est égale au produit de ses chiffres est appelé numéro espion.

Exemple :- 132
La somme des chiffres =1 + 3 + 2 =6
Le produit des chiffres =1 * 3 * 2 =6
Donc, 132 est un nombre espion.

De même, 1124 est aussi un numéro espion.
La somme des chiffres =1 + 1 + 2 + 4 =8
Le produit des chiffres =1 * 1 * 2 * 4 =8

Procédure pour développer une méthode pour vérifier que le numéro donné est un numéro d'espionnage ou non,

1) Prendre un nombre
2) Déclarer les variables somme et produit. Initialisez la variable somme avec 0 et la variable produit avec 1.
3) Trouvez le dernier chiffre du nombre
4) Ajoutez le dernier chiffre à la variable somme
5) Multipliez le dernier chiffre avec le variable de produit
6) Supprimez le dernier chiffre du nombre
7) Répétez 3 à 6 étapes jusqu'à ce que le nombre devienne 0
8) Si la valeur de la somme et de la variable de produit est égale, alors la donnée le numéro est un numéro d'espionnage sinon ce n'est pas un numéro d'espionnage.

import java.util.Scanner;

public class SpyNumber {

   // method to check the Spy number
   private static boolean isSpy(int number) {

      // declare variables
      int lastDigit = 0;
      int sum = 0;
      int product = 1;

      // iterate all digits of number
      while(number != 0) {

         // find last digit
         lastDigit = number % 10;

         // add last digit to sum
         sum = sum + lastDigit;

         // multiply last digit with product
         product = product * lastDigit;

         // remove last digit
         number = number / 10;
      }

      // compare sum and product
      if(sum == product)
         return true;

      return false;
   }

   // main method
   public static void main(String[] args) {

      // declare variables
      int number = 0;
      boolean result = false;

      // create Scanner class object
      // to take input
      Scanner scan = new Scanner(System.in);

      // take input from end-user
      System.out.print("Enter an integer number::");
      number = scan.nextInt();

      // check number is Spy number or not
      result = isSpy(number);

      // display result
      if(result)
          System.out.println(number +
                  " is a Spy number.");
      else
          System.out.println(number +
                 " is not a Spy number.");

      // close Scanner class object
      scan.close();
   }
}

La sortie des différents cas de test :-

Entrez un nombre entier ::132
132 est un numéro espion.

Entrez un nombre entier ::133
133 n'est pas un numéro espion.

Voir également :- Numéro spécial, Numéro magique, Numéro Armstrong, Numéro parfait, Numéro maléfique, Numéro espion, Numéro ensoleillé en Java

Programme Java pour trouver tous les numéros d'espionnage dans une plage donnée

On peut aussi trouver tout numéro d'espion qui existe entre deux numéros donnés. Pour cela, nous devons utiliser une boucle.

import java.util.Scanner;

public class SpyNumberInRange {

   // method to check the Spy number
   private static boolean isSpy(int number) {

      // declare variables
      int lastDigit = 0;
      int sum = 0;
      int product = 1;

      // iterate all digits of number
      while(number != 0) {

         // find last digit
         lastDigit = number % 10;

         // add last digit to sum
         sum = sum + lastDigit;

         // multiply last digit with product
         product = product * lastDigit;

         // remove last digit
         number = number / 10;
      }

      // compare sum and product
      if(sum == product)
         return true;

      return false;
   }

   // main method
   public static void main(String[] args) {

      // declare variables
      int minRange = 0, maxRange = 0;

      //create Scanner class object to take input
      Scanner scan = new Scanner(System.in);
      System.out.print("Enter minimum value of range:");
      minRange = scan.nextInt();
      System.out.print("Enter maximum value of range:");
      maxRange = scan.nextInt();

      // loop
      System.out.println("The Spy number from "+ 
              minRange + " to "+ maxRange+" are: ");

      for(int i=minRange; i<=maxRange; i++) {
          // check number
          if(isSpy(i))
              System.out.print(i +" ");
      }

      // close Scanner class object
      scan.close();
  }
}

La sortie des différents cas de test :-

Entrez la valeur minimale de la plage :1
Entrez maximum valeur de la plage :1 000
Les numéros Spy de 1 à 1 000 sont :
1 2 3 4 5 6 7 8 9 22 123 132 213 231 312 321

Entrez la valeur minimale de la plage : 1000
Entrez maximum valeur de la plage :2000
Les numéros Spy de 1000 à 2000 sont :
1124 1142 1214 1241 1412 1421


Balise Java