このコードは、noがsmack noであるかどうか、またはhackerrankにないかどうかをチェックするために書かれています。 スミス数は合成数です。その桁の合計は、素因数分解(除外)の結果として得られた素数の桁の合計です。最初の数は4,22,27です。 このコードは完璧に動作しますが、入力のタイムアウトエラーが発生します= 2050918644. は今、あなたはどのように私はこのコードを編集し、あなたがする必要はありません、それは私にタイムアウトエラースミス番号、大きな入力のタイムアウトエラー
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);
}
}
この質問はJavaScriptとは関係がありません - JavaScript質問タグが削除されました。 –
[BigInteger](https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html)を使用してください。 –
私はbigIntegerについての手がかりを持っていません –