J'ai écrit ce code pour vérifier si un non est smith non ou pas sur hackerrank. Un nombre de Smith est un nombre composé, dont la somme des chiffres est la somme des chiffres de ses facteurs premiers obtenus à la suite de la factorisation en nombres premiers (excluant). Les premiers nombres sont 4,22,27. Ce code fonctionne parfaitement, mais donne l'erreur délai d'attente pour l'entrée = 2050918644. Maintenant, pouvez-vous me dire comment puis-je modifier ce code et assurez-vous qu'il ne marche pas me donner l'erreur de délai d'attenteNuméro Smith, erreur de délai d'attente pour l'optimisation des grandes entrées
import java.io.*;
import java.util.*;
public class Solution {
static int sumD(int a){
int sum=0;
while(a>0)
{
int rem=0;
rem=a%10;
sum=sum+rem;
a=a/10;
}
return sum;}
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
int s=0;
int temp=x;
for(int i=2;i<x;i++)
{
while(temp%i==0)
{ s=s+ sumD(i);
temp=temp/i;}
}
if(sumD(x)==s)
{
System.out.println(1);
}
else
System.out.println(0);
}
}
Cette question n'a rien à voir avec JavaScript - La balise de questionnement JavaScript a été supprimée. –
Vous devez utiliser [BigInteger] (https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html). –
Je n'ai même pas la moindre idée de bigInteger –