题目:
人们把153叫做“圣经数”,因为153具有一个有趣的性质:任写一个3的倍数,把各位数字的立方和相加,得出和,再把和的各位数字立方相加,如此反复进行,最后必然出现153。例如:24是3的倍数,按照上述规则,进行变换的过程是:
24→23+43→72(第1次变换)
72→73+23→351(第2次变换)
351→33+53+13→153(第3次变换)
经过3次变换,153出现了!请你给出能够被3整除的正整数,输出变成153所需要的次数,当输入的数不是3的倍数时,提示输出“Error!”
输入格式:
输入在一行中给出1个能够被3整除的正整数。
输出格式:
对每一组输入,在一行中输出变换成圣经数所需要的次数。
输入样例1:
12
输出样例1:
count=5
输入样例2:
123
输出样例2:
count=7
输入样例3:
17
输出样例3:
Error!
代码实现:
#include <stdio.h>
#include <math.h>
int main()
{
int n, count = 1, s = 0;
scanf("%d", &n);
if(n%3!=0){
printf("Error!");
return 0;
}
if(n == 153){
printf("count=1");
return 0;
}
while(n != 0){
s = s+pow(n%10, 3);
n = n/10;
}
while(s != 153){
n = s;
s = 0;
while(n != 0){
s = s+pow(n%10, 3);
n = n/10;
}
count++;
}
printf("count=%d", count);
return 0;
}