Python中检测一个数是否为幻数/魔数

如果一个数字的各位数相加,得到一个新的数字的各位数继续相加,最后得到一个一位数字。如果这个数字是1,那么原来这个数字被称为一个幻数/魔数,英文称为magic numbers。

例如:1234=1+2+3+4=10; 1+0=1
1234是一个幻数。
现在,让我们在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}不是一个幻数!")    

文章创作不易,如果您喜欢这篇文章,请关注、点赞并分享给朋友。如有意见和建议,请在评论中反馈!

相关文章

Pytest 入门与进阶:全面掌握 Python 自动化测试

**Pytest** 是 Python 中非常流行的一个测试框架,它提供了一种简单而高效的方式来编写和执行测试,广泛应用于单元测试、功能测试和集成测试。Pytest 以其简洁的语法和丰富的功能,成为...

从零入门Python测试神器pytest!高效测试,代码质量飙升10倍

引言:为什么测试是开发者的"金钟罩"?在编程江湖中,未经测试的代码如同没有铠甲的战士。今天要介绍的pytest,正是Python领域测试覆盖率排名第一的利器(2023年PyPI官方数据...

Python单元测试最佳实践指南:编写高效测试的7个核心技巧

作为Python开发者,编写单元测试是最值得培养(并不断提升)的优秀习惯之一。它能帮助您及早发现错误、简化调试过程,并让您有信心进行代码修改而不破坏现有功能。但并非所有测试都具有同等价值!如果测试代码...

python四个性能检测工具,包括函数的运行内存、时间等等...

这里总结了五个比较好的python性能检测工具,包括内存使用、运行时间、执行次数等方面。首先,来编写一个基础的python函数用于在后面的各种性能测试。def base_func(): for...

Python实现YOLOv8车道线与车辆检测

以下是一个基于YOLOv8和OpenCV实现车道线与车辆检测的Python示例代码,结合了深度学习目标检测和传统图像处理技术:pythonimport cv2import numpy as npfro...

Python进阶-day19: 测试与调试

一、课程目标理解测试的重要性:掌握软件测试的基本概念,了解单元测试在提高代码质量和可维护性中的作用。学习测试框架:熟悉Python中两种主流测试框架unittest和pytest的使用方法,理解它们的...