python寻找1000以内的阿姆斯特朗数
文章目录
- 方法一:计算出位数然后用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以内的阿姆斯特朗数相关推荐
- python输出1000以内回文数_「答案」python每日一题20201108
质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数.用python输出1000以内的所有质数. #####方法一#####def isPrime(n): if n <=1: r ...
- python 求1000以内的完数
一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如6=1+2+3.编程找出1000以内的所有完数. count = 0 for i in range(1,1001):li ...
- python找1000以内的完数_Python编程题3--找出1000以内的完全数
题目 如果一个数恰好等于它的因子之和,则称该数为"完全数",又称完美数或完备数.例如: 第一个完全数是6,它有约数1.2.3.6,除去它本身6外,其余3个数相加,1+2+3=6. ...
- 找到1000以内的完数 利用Python实现
找到1000以内的完数 利用Python实现 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数".例如,6 的因子为1. 2.3,而6=1+2+3,因此6 是完数.编程,找 ...
- 寻找n以内的亲密数对 python编程
问题描述: 寻找n以内的亲密数对. 代码格式如下: def fac(n): ... return xxx n = int(input()) # 此处输入由系统自动完成不需要自己输 ...
- 【Python练习】寻找n以内的亲密数对
题目内容: 对于两个不同的整数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B:且整数B的全部因子(包括1,不包括B本身)之和等于A,则将A和B称为亲密数.自定义函数fac(x)计算x包 ...
- C语言打印1000以内的完数
C语言打印1000以内的完数 #include <stdio.h> int main() {int m, s, i;int n = 1000;for (m = 2; m <= n; ...
- 求 1000 以内的完数
求 1000 以内的完数 完数:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.例如:6 = ...
- java蓝桥杯算法训练 求1000以内的完数(题解)
试题 算法训练 求1000以内的完数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 如果一个数恰好等于它的所有因子(包括1但不包括自身)之和,则称之为"完数". ...
最新文章
- java中 快捷键输入System.out.println();
- Linux(Redhat5.5)配置时间服务器(Ntp)法
- xp系统 javafx_使用JavaFX构建React系统
- python实现手机号归属地相关信息查询
- TCP/IP学习笔记-Qt中的ReuseAddressHint以及SO_REUSEADDR,以为组播常用场景分析
- python标准库有pickle_Python标准库05 存储对象 (pickle包,cPickle包)-阿里云开发者社区...
- HTML5新增相关标签的和属性
- MAC 终端打开sublime3
- 14. jQuery - 添加元素
- 【LeetCode】【字符串】题号:*14. 最长公共前缀
- python数值计算库Numpy学习之—np.linalg.norm(求范数)
- json文件格式转换为png文件格式
- python 快速排名发包_SEO优化快速排名-发包技术
- 报表生成器FastReport .Net如何存储和加载报告
- Pycharm快速入门(6) — 版本控制
- 中关村标协智能物联分技术委员会成立,小米张明当选第一届主任委员
- java计算机毕业设计前后端分离健身房管理系统源代码+数据库+系统+lw文档
- PHP折算,PHP实现货币换算的方法_PHP
- 8月重要信息系统保护人员(CIIP-A)认证考试圆满结束
- 实验: GVRP 配置,三层交换机通讯 ,VLAN 间路由,单臂路由与路由器子接口的配置,vlan-单臂路由技术
热门文章
- 云计算学习笔记006---运行hadoop的例子程序:统计字符--wordcount例子程序
- NVIDIA/Apex安装时遇到 C++编译:unrecognized command line option ‘-std=c++14’ 错误解决
- 杭电1713相遇周期
- 跨多个交换机VLAN的配置方案设计(H3C)
- 3d激光雷达开发(法向量预测)
- 随想录(c语言的优缺点)
- 一步一步写算法(之字符串查找 下篇)
- 51单片机入门教程(5)——定时器中断
- su组件在什么窗口_草图大师SketchUp(SU)快捷键
- oracle11g临时表,oracle11G的临时表空间