Maison  >  Article  >  Java  >  Numéro de Smith en Java

Numéro de Smith en Java

PHPz
PHPzoriginal
2024-08-30 16:28:28830parcourir

En Java, nous avons un type de fonctionnalité différent ; le numéro Smith est le seul type de fonctionnalité fourni à l'utilisateur. Fondamentalement, le numéro de Smith n'est rien d'autre que le nombre composé (dont la base est 10 dans le système numérique) dont l'addition de tous les chiffres est égale à l'addition de tous les chiffres de son facteur premier (sauf 1), c'est ce qu'on appelle le numéro de Smith. nombre. Un autre nom pour le numéro Smith est le numéro de blague. Par définition, on peut dire que tous les nombres premiers sont naturellement exclus s’ils satisfont à la condition. Normalement, le nombre de Smith est un sous-domaine très basique du système numérique utilisé en mathématiques selon les besoins de l'utilisateur et certaines de ses exigences de l'énoncé du problème.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Logique derrière le numéro Smith

Voyons maintenant quelle est la logique derrière le numéro Smith comme suit.

La logique du numéro Smith est très simple, considérons le nombre suivant alors nous comprendrons facilement la logique comme suit.

Exemple : Supposons que nous devions vérifier si le numéro donné est un numéro Smith ou non.

Le numéro donné est : 95

Tout d'abord, nous devons découvrir que le facteur premier de 95 est 19 et 5 (5, 19)

Trouvez maintenant la somme des chiffres qui est 9 + 5 = 14

La somme du facteur premier est 5 + 1 + 9 = 15

Comparez maintenant les deux résultats, voir ici 14 n'est pas égal à 15. Le nombre donné n'est donc pas un nombre premier.

Considérons un autre nombre comme suit.

Numéro donné : 58

Trouvez d'abord le facteur premier de 58 = 2 et 29

La somme des facteurs premiers est = 2 + 2 +9 = 13

La somme des chiffres du nombre donné est = 5 + 8 = 13

Maintenant, comparez les deux résultats, ici les deux résultats sont identiques ou nous pouvons dire que c'est égal. On peut donc dire que le numéro donné est le numéro Smith.

C'est donc la logique très simple derrière le nombre de Smith, il nous suffit de comparer la somme factorielle première et la somme des chiffres. Si les deux sommes sont égales, alors le nombre donné est le numéro de Smith, sinon le nombre n'est pas un numéro de Smith.

Comment vérifier le numéro Smith en Java ?

Voyons maintenant comment vérifier si un numéro donné est Smith ou non en Java comme suit.

Dans le point ci-dessus, nous avons déjà discuté de différents exemples de numéros Smith. Voyons maintenant les différentes étapes pour trouver le numéro Smith comme suit.

1. Nous devons d’abord initialiser ou lire les numéros de l’utilisateur.

2. Après cela, nous devons trouver la somme des chiffres du nombre donné.

3. Ensuite, nous devons trouver le facteur premier d'un nombre donné.

4. Calculez maintenant la somme des chiffres des facteurs premiers.

5. Comparez maintenant la somme des chiffres d'un nombre donné et la somme des chiffres des facteurs premiers.

a. Si les deux sommes sont égales, alors nous pouvons dire que le nombre donné est le nombre de Smith.

b. Sinon, on peut considérer qu'un nombre donné n'est pas un nombre de Smith car les sommes sont différentes.

Les étapes mentionnées ci-dessus sont donc utiles pour implémenter des programmes de nombres Smith en Java.

Exemples

Voyons maintenant les différents exemples de nombres Smith en Java pour une meilleure compréhension comme suit.

Exemple n°1

Code :

import java.util.*;
public class Smith_Num
{
static int F_Sum_P_Fact(int no)
{
int j=2, add=0;
while(no>1)
{
if(no%j==0)
{
add=add+F_S_Digit(j);
no=no/j;
}
else
{
do
{
j++;
}
while(!isPrime(j));
}
}
return add;
}
static int F_S_Digit(int no)
{
int sum=0;
while(no>0)
{
sum=sum+no%10;
no=no/10;
}
return sum;
}
static boolean isPrime(int j)
{
boolean b=true;
int d=2;
while(d<Math.sqrt(j))
{
if(j%d==0)
{
b=false;
}
d++;
}
return b;
}
public static void main(String args[])
{
Scanner s_c = new Scanner(System.in);
System.out.print("Enter a number: ");
int no=s_c.nextInt();
int x = F_S_Digit(no);
int y = F_Sum_P_Fact(no);
System.out.println("addition of digit = "+x);
System.out.println("addition of prime factors digits is = "+y);
if(x==y)
System.out.print("The user enterd number is smith number.");
else
System. out.print("The user entered number is not smith number.");
}
}

Explication

Dans le programme ci-dessus, nous essayons d'implémenter le programme Smith Number en Java. Ici, nous avons d'abord créé la fonction de somme des chiffres des facteurs premiers ; de même, nous avons également créé la fonction pour trouver la somme des chiffres pour le nombre donné, comme indiqué dans le programme ci-dessus. Après cela, nous avons créé la fonction pour vérifier si le nombre donné est un nombre premier ou non en utilisant des fonctions booléennes. Ensuite, nous écrivons la fonction principale, à l'intérieur de la fonction principale, nous acceptons le numéro de l'utilisateur et appelons toutes les fonctions que nous avons déjà créées et comparons les deux sommes. Si la somme est égale, imprimez le nombre donné comme numéro de Smith et si la somme n'est pas égale, imprimez le nombre donné comme numéro de Smith. Nous illustrons le résultat final du programme ci-dessus en utilisant la capture d'écran suivante comme suit.

Exemple n°2

Voyons un autre exemple comme suit.

Code :

import java.util.*;
public class Smith_Num_2
{
static List<Integer> F_P_Fact(int no)
{
List<Integer> output = new ArrayList<>();
for (int j = 2; no % j == 0; no = no/j)
output.add(j);
for (int j = 3; j* j <= no; j=j+2)
{
while (no % j == 0)
{
output.add(j);
no = no/j;
}
}
if (no != 1)
output.add(no);
return output;
}
static int S_Digit(int no)
{
int s= 0;
while (no > 0)
{
s =s+(no % 10);
no = no/10;
}
return s;
}
public static void main(String args[])
{
for (int no = 1; no < 5000; no++)
{
List<Integer> Fact = F_P_Fact(no);
if (Fact.size() > 1)
{
int s = S_Digit(no);
for (int fa : Fact)
s =s-S_Digit(fa);
if (s == 0)
System.out.println(no);
}
}
}
}

Explication

Dans l'exemple ci-dessus, nous essayons de trouver le numéro All Smith jusqu'à 5000, comme indiqué. Nous illustrons le résultat final du programme ci-dessus en utilisant la capture d'écran suivante comme suit.

Numéro de Smith en Java

Conclusion

Nous espérons qu'à partir de cet article, vous apprendrez le nombre de Smith en Java. À partir de l'article ci-dessus, nous avons appris la logique de base du nombre de Smith et nous voyons également différents exemples de nombre de Smith. À partir de cet article, nous avons appris comment et quand utiliser le nombre de Smith en Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Nombre parfait en JavaArticle suivant:Nombre parfait en Java