import time #获取3位数的水仙花数 start1 = time.time() start = time.time() numbers = [] for i in range(100,1000): g = i %10 s = i // 10 % 10 b = i // 100 if ((g ** 3) + (s ** 3) + (b ** 3) ) == i : numbers.append(i) for j in numbers: print("3位数中水仙花数有 %d"%(j)) end = time.time() take = end - start print("计算3位数中的水仙花数花费时间 %d 秒"%(take)) # 四位的四叶玫瑰数共有3个:1634,8208,9474; numbers = [] for i in range(1000,10000): g = i % 10 s = i // 10 % 10 b = i // 100 % 10 q = i // 1000 if ((g ** 4) + (s ** 4) + (b ** 4) + (q ** 4)) == i : numbers.append(i) for j in numbers: print("4位数中四叶玫瑰数有 %d"%(j)) # 五位的五角星数共有3个:54748,92727,93084; numbers = [] for i in range(10000,100000): g = i % 10 s = i // 10 % 10 b = i // 100 % 10 q = i // 1000 % 10 w = i // 10000 if ((g ** 5) + (s ** 5) + (b ** 5) + (q ** 5) + (w ** 5)) == i : numbers.append(i) for j in numbers: print("五位的五角星数共有 %d"%(j)) # 六位的六合数只有1个:548834; numbers = [] for i in range(100000,1000000): g = i % 10 s = i // 10 % 10 b = i // 100 % 10 q = i // 1000 % 10 w = i // 10000 % 10 y = i // 100000 if ((g ** 6) + (s ** 6) + (b ** 6) + (q ** 6) + (w ** 6) + (y ** 6)) == i : numbers.append(i) for j in numbers: print("六位的六合数共有 %d"%(j)) # 七位的北斗七星数共有4个:1741725,4210818,9800817,9926315; start = time.time() numbers = [] for i in range(1000000,10000000): g = i % 10 s = i // 10 % 10 b = i // 100 % 10 q = i // 1000 % 10 w = i // 10000 % 10 y = i // 100000 % 10 sy = i // 1000000 if ((g ** 7) + (s ** 7) + (b ** 7) + (q ** 7) + (w ** 7) + (y ** 7) + (sy ** 7)) == i : numbers.append(i) for j in numbers: print("七位的北斗七星数共有 %d"%(j)) end = time.time() take = end - start print("七位的北斗七星数花费时间 %d 秒"%(take)) # 八位的八仙花数共有3个:24678050,24678051,88593477 start = time.time() numbers = [] for i in range(10000000,100000000): g = i % 10 s = i // 10 % 10 b = i // 100 % 10 q = i // 1000 % 10 w = i // 10000 % 10 y = i // 100000 % 10 sy = i // 1000000 % 10 by = i // 10000000 if ((g ** 8) + (s ** 8) + (b ** 8) + (q ** 8) + (w ** 8) + (y ** 8) + (sy ** 8) + (by ** 8)) == i : numbers.append(i) for j in numbers: print("八位的八仙花数共有 %d"%(j)) end = time.time() take = end - start print("八位的八仙花数花费时间 %d 秒"%(take)) end1 = time.time() take1 = end1 - start1 print("计算3位数到8位数的水仙花数共花费时间 %d"%(take1)) # # 八位的八仙花数共有 24678050 # 八位的八仙花数共有 24678051 # 八位的八仙花数共有 88593477 # 八位的八仙花数花费时间 311 秒
运行结果:
3位数中水仙花数有 153
3位数中水仙花数有 370
3位数中水仙花数有 371
3位数中水仙花数有 407
计算3位数中的水仙花数花费时间 0 秒
4位数中四叶玫瑰数有 1634
4位数中四叶玫瑰数有 8208
4位数中四叶玫瑰数有 9474
五位的五角星数共有 54748
五位的五角星数共有 92727
五位的五角星数共有 93084
六位的六合数共有 548834
七位的北斗七星数共有 1741725
七位的北斗七星数共有 4210818
七位的北斗七星数共有 9800817
七位的北斗七星数共有 9926315
七位的北斗七星数花费时间 27 秒
八位的八仙花数共有 24678050
八位的八仙花数共有 24678051
八位的八仙花数共有 88593477
八位的八仙花数花费时间 297 秒
计算3位数到8位数的水仙花数共花费时间 327
CPU :21% 内存 %42