不變初心數是指這樣一種特別的數,它分別乘 2、3、4、5、6、7、8、9 時,所得乘積各位數之和卻不變。例如 18 就是這樣的數:18 的 2 倍是 36,3+6=9;18 的 3 倍是 54,5+4=9;…… 18 的 9 倍是 162,1+6+2=9。對於 18 而言,9 就是它的初心。本題要求你判斷任一個給定的數是否有不變的初心。
輸入格式:
輸入在第一行中給出一個正整數 N(≤ 100)。隨后 N 行,每行給出一個不超過 1 的正整數。
輸出格式:
對每個給定的數字,如果它有不變的初心,就在一行中輸出它的初心;否則輸出 NO
。
輸入樣例:
4
18
256
99792
88672
輸出樣例:
9
NO
36
NO
1 #include <stdio.h> 2 int main(){ 3 int n,sum=0,i,t,j,a,f,c=0; 4 scanf("%d",&n); 5 for(i=0;i<n;i++){ 6 scanf("%d",&a); 7 t=a; 8 sum=0; 9 while(t){ 10 sum+=t%10; 11 t/=10; 12 } 13 f=sum; 14 //printf("%d ",f); 15 c=0; 16 for(j=2;j<=9;j++){ 17 t=a*j; 18 sum=0; 19 while(t){ 20 sum+=t%10; 21 t/=10; 22 } 23 if(sum==f) c++; 24 } 25 if(c==8) printf("%d\n",f); 26 else printf("NO\n"); 27 } 28 return 0; 29 }