如果一个数字的各位数相加,得到一个新的数字的各位数继续相加,最后得到一个一位数字。如果这个数字是1,那么原来这个数字被称为一个幻数/魔数,英文称为magic numbers。
例如:1234=1+2+3+4=10; 1+0=1
1234是一个幻数。
现在,让我们在Python/ target=_blank class=infotextkey>Python中编写代码来检测幻数,使用while循环来迭代并计算数字的总和,直到它变成一个个位数。
第4,5,6行:n==0表示第一轮求和完成,n=sum,sum=0将求和结果赋值给n,清空sum,继续下一轮求和。
还有一种验证幻数的快捷方式。检测一个数除以9的余数是否为1。如果余数是1,那么这个数字是一个幻数。如果一个数字的各位数之和能被9整除,则该数字可以被9整除。因此,如果一个数字的各位数之和被9除余数为1,则该数字可以被9除余数为1。
查找两位数中的所有幻数
文中涉及代码:
for i in range(10,100): if i%9==1: print(f"{i}是一个幻数!") num=int(input('请输入一个数字:')) if num%9==1: print(f"{num}是一个幻数!") else: print(f"{num}不是一个幻数!") def Magic(n): sum=0 while n>0 or sum>9: if n==0: n=sum sum=0 sum = sum + n % 10 n = int(n / 10) return True if sum==1 else False num=int(input('请输入一个数字:')) if Magic(num): print(f"{num}是一个幻数!") else: print(f"{num}不是一个幻数!")