c++校园竞赛题
给定一个正数,然后将其每一位数字进行平方求和后形成下一个数,循环往复,直到生成的数在前面已经出现为止,变换结束。例:给定44,2个4的平方和变成32,3的平方加2的平方等于13,1的平方加3的平方等于10,然后就是1,下面任然是1,序列变换结束,课简单描述成:44->32->13->10->1->1.
再例如给定2,其变换序列为2->4->16->37->58->89->->145->42->20->4。
我们规定,给定正整数n,若最后的变换终止于数值1,则称n为“快乐数”,否则就不是。
现在的任务,给定正整数N,请你计算区间【1··N】之间有多少个“快乐数”
INPUT
测试数据有多组,首先输入测试的组数T(0<T<=20)然后是T组测试数据,每组测试输入一个正整数N(1<=N<=5,000,000)
OUTPUT
对于每组测试,请你计算区间【1··N】之间有多少个“快乐数”