PTA 不變初心數


不變初心數是指這樣一種特別的數,它分別乘 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 }

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM