publicclass Guess {
/**
* 任何一个不能被3整除的偶数,如488,按下列步骤:
* 若该数为偶数,则把它各个位数之和的平方作为新数;
* 若该数为奇数则各个位数之和的立方作为新数,
* 再把那个新数重复以上步骤(偶数就各位数之和平方,奇数就各位数之和立方),
* 一步步计算下去,肯定能在9步内变为1!
*
* @param args -
*/publicstaticvoid main(String[] args) {
for (int i =2; i <10000; i+=2) {
if (i %3!=0) {
process(i);
}
}
}
privatestaticvoid process(int n) {
int original = n;
int step =0;
while (step <10&& n >1) {
int m = sum(n);
if (n %2==0) {
n = m * m;
} else {
n = m * m * m;
}
step++;
}
if (step ==10) {
System.out.println(original +" is invalid.");
}
}
privatestaticint sum(int n) {
int sum =0;
while(n >=10) {
sum += n %10;
n = n /10;
}
return sum + n;
}
}