输出400以内的smith数,程序没有错到运行不了,希望又大佬解答下
package homework2;
public class calculate {
static int s;
static int s1;
static int s2;
static int n1;
public static int Sum(int a){
s=0;//每次调用更新S的值
int m;
while(a!=0){
m=a%10;
a=a/10;
s+=m;
}
return s;
}
public static int main(String[] args)
{
int n;
for(n=1;n<=400;n++){
s1=0;
s1=Sum(n);
int i=2;
s2=0; //重新输入n时更新s2的值
//循环分解
while(n!=1){
if(n%i==0){
n1=n;
s2+=Sum(i);
n/=i;
}
else i++;
}
if(s1==s2)
System.out.print(+n1);
}
return 0;
}
}