Programme de nombres automorphes en Java
Dans cet article, nous développerons un programme de nombres automorphes en Java. Dans un premier temps, nous apprendrons quel est le nombre automorphe puis nous verrons quelles sont les différentes manières de vérifier si le nombre est un nombre automorphe ou non.
En mathématiques, un nombre est appelé un nombre automorphe si le carré du nombre se termine par le même nombre. Des exemples de nombres automorphes sont :- 5, 6, 25, 76, etc.
Le carré de 6 =36
Le nombre 36 se termine par 6 donc c'est un nombre automorphe.
De même, le carré du nombre 76 =5776
Ici le 5776 se termine par 76 donc 76 est un nombre automorphe.
Il existe deux façons de vérifier que le nombre donné est un nombre automorphe ou non
1) En utilisant une chaîne
2) Sans utiliser une chaîne
La première façon, c'est-à-dire l'utilisation d'une chaîne, est très simple, nous en discuterons donc plus tard. Tout d'abord, nous allons développer le programme sans utiliser les méthodes prédéfinies de la classe String.
Procédure
Procédure pour développer la méthode pour vérifier que le nombre est automorphe ou non sans utiliser les méthodes de classe de chaîne,
- Prenez un numéro
- Calculer son carré et le stocker dans une variable
- Trouver le dernier chiffre d'un nombre et d'un carré
- Comparez les deux derniers chiffres
- S'ils ne sont pas identiques, il ne s'agit pas d'un nombre automorphe.
- S'ils sont identiques, passez à l'étape suivante
- Supprimer le dernier chiffre du nombre et du carré
- Répétez les étapes 4 à 6 jusqu'à ce que le nombre devienne 0
- Toutes les étapes précédentes se sont terminées avec succès, donc le nombre est un nombre automorphe
// checks number is automorphic number or not
// without using String class methods
public static boolean isAutomorphic(int num) {
// declare variables
int square = num*num;
int lastDigitOfNumber = 0, lastDigitOfSquare = 0;
// traverse all digits of number
// and compare it with square
while(num != 0) {
// find last digit
lastDigitOfNumber = num % 10;
lastDigitOfSquare = square % 10;
// compare both last digit
if(lastDigitOfNumber != lastDigitOfSquare)
return false;
// remove last digit
num /= 10;
square /= 10;
}
return true;
}
Le code ci-dessus peut sembler lourd pour vous, mais nous réduisons le nombre de lignes. Nous pouvons trouver le dernier chiffre et comparer le chiffre sur une ligne. La méthode ci-dessous le démontre,
Programme de nombres automorphes en Java utilisant la boucle while
// checks number is automorphic number or not
// without using String class methods
public static boolean isAutomorphic(int num) {
int square = num*num;
// traverse all digits of number
// and compare it with square
while(num != 0) {
// find last digit and
// compare both last digit
if((num % 10) != (square % 10))
return false;
// remove last digit
num /= 10;
square /= 10;
}
return true;
}
Programme de nombres automorphes en Java utilisant la boucle for
public static boolean isAutomorphic(int num) {
for(int square = num*num; num!=0; num/=10, square/=10)
if((num % 10) != (square % 10))
return false;
return true;
}
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 vérifier les nombres automorphes sans chaîne
Sur la base des méthodes décrites ci-dessus, nous allons écrire un programme Java pour vérifier que le nombre est un nombre automorphe ou non. Nous utiliserons la boucle while car elle est simplifiée par rapport à la boucle for et tout le monde peut comprendre.
import java.util.Scanner;
public class AutomorphicNumber {
// Checks number is automorphic number or not
// without using String class methods
public static boolean isAutomorphic(int num) {
int square = num*num;
// traverse all digits of number
// and compare it with square
while(num != 0) {
// find last digit and
// compare both last digit
if((num % 10) != (square % 10))
return false;
// remove last digit
num /= 10;
square /= 10;
}
return true;
}
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 Automorphic number or not
result = isAutomorphic(number);
if(result)
System.out.println(number +
" is an Automorphic number.");
else
System.out.println(number +
" is not an Automorphic number");
// close Scanner class object
scan.close();
}
}
La sortie de différents cas de test :-
Entrez un nombre entier ::5
5 est un nombre automorphe.
Entrez un nombre entier ::7
7 n'est pas un nombre automorphe
Entrez un nombre entier ::25
25 est un nombre automorphe.
Utiliser une chaîne
Dans ce cas, convertissez les deux nombres et la valeur au carré du nombre dans la chaîne en utilisant toString()
méthode.
// convert numbers to string
String str_num = Integer.toString(num);
String str_square = Integer.toString(num*num);
Maintenant, en utilisant endswith()
méthode de la classe de chaîne vérifie que la chaîne str_square se termine par str_num ou non ? Si oui, alors le nombre donné est un nombre automorphe, sinon ce n'est pas un nombre automorphe.
if(str_square.endsWith(str_num))
return true; // automorphic number
else
return false; // not an automorphic number
Le programme ci-dessous le démontre,
import java.util.Scanner;
public class AutomorphicNumberUsingString {
// Checks number is automorphic number or not
// using String
public static boolean isAutomorphic(int num) {
// convert numbers to string
String str_num = Integer.toString(num);
String str_square = Integer.toString(num*num);
// check endWith
if(str_square.endsWith(str_num))
return true;
return false;
}
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 Automorphic number or not
result = isAutomorphic(number);
if(result)
System.out.println(number +
" is an Automorphic number.");
else
System.out.println(number +
" is not an Automorphic number");
// close Scanner class object
scan.close();
}
}
Programme Java pour le nombre automorphe dans une plage
Nous pouvons trouver tous les nombres automorphes qui appartiennent à une plage donnée, pour cela nous demanderons la valeur minimale et maximale de la plage à l'utilisateur final.
import java.util.Scanner;
public class AutomorphicNumberInRange {
// Checks number is automorphic number or not
public static boolean isAutomorphic(int num) {
for(int square=num*num;num!=0;num/=10,square/=10)
if((num % 10) != (square % 10)
return false;
return true;
}
public static void main(String[] args) {
// declare variables
int minRange = 0, maxRange = 0;
// create Scanner class object
Scanner scan = new Scanner(System.in);
// read inputs
System.out.print("Enter min value of range:: ");
minRange = scan.nextInt();
System.out.print("Enter max value of range:: ");
maxRange = scan.nextInt();
// check number
System.out.println("The Automorphic numbers from "+
minRange+" to "+ maxRange+" are:: ");
for(int i=minRange; i<=maxRange; i++) {
if(isAutomorphic(i))
System.out.print(i+" ");
}
// close Scanner class object
scan.close();
}
}
La sortie de différents cas de test :-
Entrez la valeur min de la plage ::1
Entrez la valeur max de la plage ::100
Les nombres automorphes de 1 à 100 sont : :1 5 6 25 76
Entrez la valeur min de la plage ::100
Entrez la valeur max de la plage ::100000
Les nombres automorphes de 100 à 100000 sont : :376 625 9376