对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸福是依附于初始数字的。例如 82、68、100 的幸福是依附于 19 的。而一个特立独行的幸福数,是在一个有限的区间内不依附于任何其它数字的;其独立性就是依附于它的的幸福数的个数。如果这个数还是个素数,则其独立性加倍。例如 19 在区间[1, 100] 内就是一个特立独行的幸福数,其独立性为 2×4=8。 另一方面,如果一个大于1的数字经过数次迭代后进入了死循环,那这个数就不幸福。例如 29 迭代得到 85、89、145、42、20、4、16、37、58、89、…… 可见 89 到 58 形成了死循环,所以 29 就不幸福。 本题就要求你编写程序,列出给定区间内的所有特立独行的幸福数和它的独立性。
时间: 2023-04-30 20:04:15 浏览: 76
判断一个数 n 是不是快乐数
本题要求你编写程序,列出给定区间内的所有特立独行的幸福数和它们的独立性。
对于一个十进制数的各位数字做一次平方和,得到一个新数。对这个新数再执行同样的操作,不断重复这样的操作,如果最终得到的结果是1,则该数为幸福数;否则,这个数会陷入一个不断循环的数列中。
例如,19 迭代一次之后得到82,迭代两次之后得到68,迭代三次之后得到100,迭代四次之后得到1。因此,19 是一个幸福数。
显然,一个幸福数的各个数字在一次迭代之后就不会再改变了。如果一个数迭代之后有一次及以上得到了已知的幸福数,那么它就不是一个特立独行的幸福数,否则它是一个特立独行的幸福数。
本题中,你需要编写程序接受一个区间 [a, b],输出在其中的所有特立独行的幸福数和它们的独立性。幸福数按顺序输出,每行一个,最后一行无换行符。如果没有独立的幸福数,则输出“None”。
阅读全文