文章目录

  • 方法一:计算出位数然后用for循环
  • 方法二:用while循环+判断位数

阿姆斯特朗数定义:如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。

1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。

方法一:计算出位数然后用for循环

核心代码为

length = len(str(num))                          # num是输入的数字,类型为int
for ii in range(length):                        # length是数字的位数num_str = str(num)sum_armstrong += int(num_str[ii])**length      # num_str[]是原数拆分成各个位的数字if sum_armstrong == num:return True

完整代码如下:

def is_armstrong(num):length = len(str(num))sum_armstrong = 0for ii in range(length):sum_armstrong += int(str(num)[ii])**lengthif sum_armstrong == num:return Trueelse:return Falsefor num in range(1,1000):if is_armstrong(num):print(num, end = ' ')

运行效果:

1 2 3 4 5 6 7 8 9 153 370 371 407
Process finished with exit code 0

方法二:用while循环+判断位数

核心代码:

temp = num                                      # 新建一个用于找每一位数字的临时变量
while temp > 0:sum_armstrong += (temp%10)**length            # 取最后一位数字temp //= 10                                 # 除以10,整除复发,相当于直接拿掉最后一位数字if sum_armstrong == num:return True

完整代码如下:

def is_armstrong(num):temp = num                          sum_armstrong = 0length = len(str(num))while temp > 0:sum_armstrong += (temp%10)**length   # 取最后一位数字temp //= 10                     if sum_armstrong == num:return Trueelse:return Falsefor num in range(1,1000):if is_armstrong(num):print(num, end = ' ')

总结:while循环在不确定位数的时候更有效,for循环需要预先计算更多的信息,比如循环次数;而while则不需要,可以创造退出条件,一边计算一边判断。

python寻找1000以内的阿姆斯特朗数相关推荐

  1. python输出1000以内回文数_「答案」python每日一题20201108

    质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数.用python输出1000以内的所有质数. #####方法一#####def isPrime(n): if n <=1: r ...

  2. python 求1000以内的完数

    一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如6=1+2+3.编程找出1000以内的所有完数. count = 0 for i in range(1,1001):li ...

  3. python找1000以内的完数_Python编程题3--找出1000以内的完全数

    题目 如果一个数恰好等于它的因子之和,则称该数为"完全数",又称完美数或完备数.例如: 第一个完全数是6,它有约数1.2.3.6,除去它本身6外,其余3个数相加,1+2+3=6. ...

  4. 找到1000以内的完数 利用Python实现

    找到1000以内的完数 利用Python实现 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如,6 的因子为1. 2.3,而6=1+2+3,因此6 是完数.编程,找 ...

  5. 寻找n以内的亲密数对 python编程

    问题描述: 寻找n以内的亲密数对. 代码格式如下: def fac(n):     ...     return  xxx n = int(input())   # 此处输入由系统自动完成不需要自己输 ...

  6. 【Python练习】寻找n以内的亲密数对

    题目内容: 对于两个不同的整数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B:且整数B的全部因子(包括1,不包括B本身)之和等于A,则将A和B称为亲密数.自定义函数fac(x)计算x包 ...

  7. C语言打印1000以内的完数

    C语言打印1000以内的完数 #include <stdio.h> int main() {int m, s, i;int n = 1000;for (m = 2; m <= n; ...

  8. 求 1000 以内的完数

    求 1000 以内的完数 完数:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.例如:6 = ...

  9. java蓝桥杯算法训练 求1000以内的完数(题解)

    试题 算法训练 求1000以内的完数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为"完数". ...

最新文章

  1. java中 快捷键输入System.out.println();
  2. Linux(Redhat5.5)配置时间服务器(Ntp)法
  3. xp系统 javafx_使用JavaFX构建React系统
  4. python实现手机号归属地相关信息查询
  5. TCP/IP学习笔记-Qt中的ReuseAddressHint以及SO_REUSEADDR,以为组播常用场景分析
  6. python标准库有pickle_Python标准库05 存储对象 (pickle包,cPickle包)-阿里云开发者社区...
  7. HTML5新增相关标签的和属性
  8. MAC 终端打开sublime3
  9. 14. jQuery - 添加元素
  10. 【LeetCode】【字符串】题号:*14. 最长公共前缀
  11. python数值计算库Numpy学习之—np.linalg.norm(求范数)
  12. json文件格式转换为png文件格式
  13. python 快速排名发包_SEO优化快速排名-发包技术
  14. 报表生成器FastReport .Net如何存储和加载报告
  15. Pycharm快速入门(6) — 版本控制
  16. 中关村标协智能物联分技术委员会成立,小米张明当选第一届主任委员
  17. java计算机毕业设计前后端分离健身房管理系统源代码+数据库+系统+lw文档
  18. PHP折算,PHP实现货币换算的方法_PHP
  19. 8月重要信息系统保护人员(CIIP-A)认证考试圆满结束
  20. 实验: GVRP 配置,三层交换机通讯 ,VLAN 间路由,单臂路由与路由器子接口的配置,vlan-单臂路由技术

热门文章

  1. 云计算学习笔记006---运行hadoop的例子程序:统计字符--wordcount例子程序
  2. NVIDIA/Apex安装时遇到 C++编译:unrecognized command line option ‘-std=c++14’ 错误解决
  3. 杭电1713相遇周期
  4. 跨多个交换机VLAN的配置方案设计(H3C)
  5. 3d激光雷达开发(法向量预测)
  6. 随想录(c语言的优缺点)
  7. 一步一步写算法(之字符串查找 下篇)
  8. 51单片机入门教程(5)——定时器中断
  9. su组件在什么窗口_草图大师SketchUp(SU)快捷键
  10. oracle11g临时表,oracle11G的临时表空间