python 求3到8位數的水仙花數Pycharm實現


#-*- coding: utf-8-*-
import time
import math
#獲取3位數的水仙花數
start1 = time.time()
start = time.time()

numbers = []
for i in range(100,1000):
a = i % 10
b = i // 10 % 10
c = i // 100
if((a ** 3) + (b ** 3) + (c ** 3)) == i:
numbers.append(i)

for j in numbers:
print("3位數中水仙花數有 %d" % (j))

end = time.time()
take = end - start
print("計算3位數中的水仙花數花費時間 %d 秒" % (take))

#四位數中的四爺玫瑰數
numbers = []

for i in range(1000,10000):
a = i % 10
b = i % 100 // 10
c = i % 1000 // 100
d = i // 1000

if((a ** 4) + (b ** 4) + (c ** 4) + (d ** 4)) == i:
numbers.append(i)

for j in numbers:
print("4位數中水玫瑰數有 %d" % (j))

#五位數中的五角星數
numbers = []

for i in range(10000,100000):
a = i % 10
b = i // 10 % 10
c = i // 100 % 10
d = i // 1000 % 10
e = i // 10000

if(math.pow(a,5) + (b ** 5) + (c ** 5) +
(d ** 5) + (e ** 5)) == i:
numbers.append(i)

for j in numbers:
print("5位數中的五角星數有 %d" % (j))

#六位數中的六合數
numbers = []

for i in range(100000,1000000):
a = i % 10
b = i // 10 % 10
c = i // 100 % 10
d = i // 1000 % 10
e = i // 10000 % 10
f = i // 100000

if(math.pow(a,6) + math.pow(b,6) + math.pow(c,6)
+ math.pow(d,6) + math.pow(e,6) + math.pow(f,6)) == i:
numbers.append(i)

for j in numbers:
print("6位數中六合數有 %d " % (j))

#七位數中的北斗七星數
numbers = []

for i in range(1000000,10000000):
a = i % 10
b = i // 10 % 10
c = i // 100 % 10
d = i // 1000 % 10
e = i // 10000 % 10
f = i // 100000 % 10
g = i // 1000000

if(math.pow(a,7) + math.pow(b,7) + math.pow(c,7)
+ math.pow(d,7) + math.pow(e,7) + math.pow(f,7) + math.pow(g,7)) == i:
numbers.append(i)

for j in numbers:
print("7位數中北斗七星數有 %d " % (j))

end = time.time()
take = end - start
print("7位數中北斗七星數花費時間 % d 秒" % (take))

#八位數中的八仙花數
numbers = []

for i in range(10000000,100000000):
a = i % 10
b = i // 10 % 10
c = i // 100 % 10
d = i // 1000 % 10
e = i // 10000 % 10
f = i // 100000 % 10
g = i // 1000000 % 10
h = i // 10000000

if(math.pow(a,8) + math.pow(b,8) + math.pow(c,8)
+ math.pow(d,8) + math.pow(e,8) + math.pow(f,8)
+ math.pow(g,8) + math.pow(h,8)) == i:
numbers.append(i)

for j in numbers:
print("8位數中八仙花數有 %d " % (j))

end = time.time()
take = end - start
print("8位數中八仙花數花費時間 % d 秒" % (take))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM