Python实现水仙花数

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)《摘自百度百科》。

下面给出三位数水仙花Python代码实现::

# 循环遍历出所有三位数
for tmp in range(100, 1000):
    # 取余找出个位数
    a = tmp % 10
    # 求商取整找出百位数
    b = int(tmp / 100)
    # 通过求商取整找出百位和十位,然后求商找出十位
    c = int(tmp / 10) % 10
    if tmp == a**3 + b**3 + c**3:
        print("%d" %tmp)

有兴趣可以百度百科了解下<https://baike.baidu.com/item/%E6%B0%B4%E4%BB%99%E8%8A%B1%E6%95%B0/2746160?fr=aladdin&gt;

原文地址:http://blog.51cto.com/10412806/2092205

时间: 2024-08-01 00:09:13

Python实现水仙花数的相关文章

python练习——水仙花数

题目: 请判断一个数是不是水仙花数.其中水仙花数定义各个位数立方和等于它本身的三位数.输入有多组测试数据,每组测试数据以包含一个整数n(100<=n<1000)输入0表示程序输入结束.输出如果n是水仙花数就输出Yes否则输出No样例输入1531540样例输出YesNo 1 class Shui: 2 3 def __init__(self,str): 4 self.str=str 5 6 def carculate(self): 7 n=len(self.str) 8 sum = 0 9 fo

python 取水仙花数的问题

什么是水仙花数 "水仙花数" 代码 for x in range(100, 1000): # 取个位数 a = x % 10 # 取十位数 b = int(x % 100 / 10) # 取百位数 c = int(x / 100) if a**3 + b**3 + c**3 == x: print(x) 一个小小的测试,重点在怎么取到各位的数字,我竟然想了很久,参考了多个博客-- 为自己的智商感到捉急-- 另外可以参考以下博客的答案: https://blog.csdn.net/xie

用Python编写水仙花数

def sxh(start, end): if end >= start and start >=100 and end<= 999: num=start #将num的值初始化 L =[] while num<=end: x=num%10 #num取个位数 y=num//10%10 #num取十位数 z=num//100 #num取百位数 if (num==pow(x,3)+pow(y,3)+pow(z,3)): L.append(num) #将num放在一个列表里 num=num

Python练习题 009:水仙花数

[Python练习题 009] 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方. ---------------------------------------------------------------------- 这题也是送分题,只要能把任意三位数的百位.十位.个位拆解出来就好办了.思路:将任意3位数除以100再向下取整,即可得到百位数.将这个3位数减去(百位数*10

Python基础练习-003-求100-999之间所有的水仙花数

水仙花数是指一个n位的正整数(n>=3),它的每个数字的n次幂之和等于它本身.例如:153=1*1*1+5*5*5+3*3*3,153为三位数,它的每个数字的三次方之和等于153.用python语言实现求出100~999之间的所有水仙花数. 分析过程:将正整数n的个位十位百位分别取出,再求幂之和:个位百位比较好拆分,十位的话可以先减去百位再用除法计算. 1 # -*- coding:utf-8 -*- 2 # @Author : 飘飘_emmm 3 print("100-999之间的水仙花

用python语言来判断一个数是否是水仙花数?

#用python语言来判断一个数是否是水仙花数? #水仙花数: # 1) 一个三位正整数 ( 即取值区间 [100,1000) ) # 2) 个位数字的立方+十位数字的立方+百位数字的立方=它本身  (即数字 abc = a**3 + b**3 + c**3) 代码: for a in range(1,10):    #定义百位数取值区间 (1,9)     for b in range(10):    #定义十位数取值区间 (0,9)         for c in range(10):  

python 打印所有的水仙花数

目标分析: #水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身. 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 利用for循环控制100-999个数,每个数分解出个位,十位,百位. 一.参考解法: 1 for a in range(1,10): 2 for b in range(0,10): 3 for c in range(0,10): 4 s1= a*100+b*10+c 5 s2= pow(a,3)+pow(

python中3位数中的水仙花数,和5位数中回文数的个数

3位数中的水仙花数打印num=100 e=0while num<1000: b=num%10 c=num//10%10 d=num//100 if b**3+c**3+d**3==num: e+=1 print (num) num+=1print (e) 5位数中的回文数的个数 num=10000e=0while num<=99999: a=num//10000 b=num//1000%10 c=num%100//10 d=num%10 if a==d and b==c: e+=1 print

打印出三位数的水仙花数Python

水仙花数计算 ???????????????????????????????????????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????? 1.题目描述 “3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身.例如:ABC是一