python 求任意范围内水仙花数

代码:

#水仙花数
num=int(input(‘请输入任意范围,将会得到其范围内的所有水仙花数:‘))
for i in range(1,num+1):
    cifang = len(str(i))            #这个数的位数,即为次方数
    total = 0                       #各位数N次方之和
    j = i                           #因为后面i会用做比较,所以我不更改i的值
    last_w = 0                      #这个数的最后一位数
    while j > 0 and cifang > 2:
        last_w = j % 10             #对10求余,表示这个数的最后一个数
        j = j // 10                 #去掉最后一位数
        total += last_w ** cifang   #计算各位的N次方之和
    if total == i:                  #如果各位数的N次方之后与原数i相等,就打印
        print(i)

运行结果:

原文地址:https://blog.51cto.com/10888845/2473286

时间: 2024-11-06 11:42:31

python 求任意范围内水仙花数的相关文章

使用python求10万内的所有素数的个数

#求10万内的所有素数(9592) print(2) count = 1 for i in range(3,100000): for j in range(2,i): if i%j ==0: break if j==i-1: print(i) 优化: count = 1 for i in range(3,100000,2):#跳过所有偶数 for j in range(2,i): if i%j ==0: break if j==i-1: count +=1 print(count) 再优化: c

hdu 1806 Frequent values(给定一个非降序数组,求任意区间内出现次数最多的数的次数)

1.题目解析可见<训练指南>P198 2代码: #include<cstdio> #include<cstring> #include<cmath> #define Min(a,b) ((a)<(b)?(a):(b)) #define Max(a,b) ((a)>(b)?(a):(b)) #define N 100005 #define INF 1<<30 using namespace std; int a[N]; int valu

练习题5:水仙花数

题目描述 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: "水仙花数"是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3. 现在要求输出所有在m和n范围内的水仙花数. 输入描述: 输入数据有多组,每组占一行,包括两个整数m和n(100 ≤ m ≤ n ≤ 999). 输出描述: 对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在

水仙花数的解法

package cn; import java.lang.reflect.Method; /**  * 三位的水仙花数共有4个:153,370,371,407  *  */ public class DaffodilNumber { public static void main(String[] args) { method1(); /**  *  三位水仙花数是:153  * 三位水仙花数是:370  * 三位水仙花数是:371  * 三位水仙花数是:407  */ System.out.p

python基础----求水仙花数

水仙花数,即一个三位数,各个位上的数字的三次方相加,等于该数本身.如:153 = 1**3 + 5 ** 3 + 3 ** 3 1 def is_narc_num(n): 2 # if n <100 or n > 999: 3 # return False 4 # n = str(n) 5 # if int(n[0])**3 + int(n[1])**3 + int(n[2]) ** 3 == int(n): 6 # return True 7 # else: 8 # return False

【python】编写一个程序,求100~999之间的所有水仙花数

编写一个程序,求100~999之间的所有水仙花数. 如果一个三位数等于其各位数字的立方和,则称这个数为水仙花数. 例如:153=1^3+5^3+3^3 因此153就是一个水仙花数 代码如下 #水仙花数 for i in range(100, 1000): sum = 0 temp = i while temp: sum = sum + (temp%10)**3 temp //=10 if sum == i: print(i) 原文地址:https://www.cnblogs.com/SiminL

Python练习题 009:水仙花数

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

C语言——求水仙花数

昨天,雷老师偶有闲致,评讲了n周前的C程序设计作业.其中讲到了一到求水仙花数的题,给出了一种漂亮的算法,在此记录下来. 原题 输出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身. 解题 思路 初始化i=100. ①取i的各位数,百位a,十位b,个位c. ②判断i==a∧3+b∧3+c∧3 是否成立 ③如果成立则输出,否则不输出. ④i=i+1,当i小于1000重复①,否则结束. 关键算法:取任意三位数的各位数 算法一:除减法 ①将数除以100,由整型数据特点,小数点后被

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, 1