Smith数问题,请大家帮忙啊!谢谢~
Smith数是指:对于一个整数,如果它的各位之和等于它的所有质因数的各位之和,那么就是Smith数。
原题在右边,图有些小,见谅啊!谢谢!
以下是我的代码:
程序代码:#include<stdio.h>
void main()
{
int n,i,sum=0;
int a[100]={0},b[100];
int j=0,m=0;
int k,plus=0,count=0;
int t,p; //中间变量
printf("输入数字:\n");
while(scanf("%d",&n) && n!=0)
{
t=n;
while(t!=0)//求输入数字的各个位之和
{
sum+=t%10;
t=t/10;
}
for(i=3; i<n && i%2!=0; i++) //求其所有因子的各个位之和
{
if(n%i==0)
{
p=i;
while(p!=0)
{
a[j]+=p%10;
p=p/10;
}
j++;
n=n/i;
}
}
for(k=0;k<j;k++)
{
plus+=a[k];
}
//plus+=2;
if(plus==sum)
{
b[m]=1;
}
m++;
count++;
sum=0;
plus=0;
j=0;
}
printf("\n");
for(m=0;m<count;m++)
{
if(b[m]==1)
{
printf("yes!\n");
}
else
{
printf("no!\n");
}
}
}

