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"); } } }