題目:列印出所有的「水仙花數」,所謂「水仙花數」是指乙個三位數,其各位數字立方和等於該數
本身。例如:153是乙個「水仙花數」,因為153=1的三次方+5的三次方+3的三次方。
分析:方法一,判斷乙個書是否能被比其開根號後的數小的素數整除即可。
方法二,考慮到不能被2整除,肯定不能被4、6、8等整除。所以只需要判斷是否能被比其開根號後的數小的素數整除即可。
# -*- coding: utf-8 -*-
#by antinsnow
import time
#自己的方法
defmethod1()
: a =[0
,1,2
**3,3
**3,4
**3,5
**3,6
**3,7
**3,9
**3,9
**3] num_h =
[100
,200
,300
,400
,500
,600
,700
,800
,900
] num_t =[0
,10,20
,30,30
,50,60
,70,80
,90] num_n =[0
,1,2
,3,4
,5,6
,7,8
,9] numre =
for i in
range(0
,9):
for j in
range(0
,10):
if num_h[i]
+num_t[j]
>
999:
break
for k in
range(0
,10):
num = num_h[i]
+num_t[j]
+num_n[k]
if num >
999:
break
if num ==a[i+1]
+a[j]
+a[k]
:return numre
start = time.time(
)for i in
range
(10000):
num = method1(
)end = time.time(
)print
(num,end - start)
#傳統的方法
defmethod2()
: numre =
for n in
range
(100
,1000):
i = n //
100 j =
(n //10)
%10k = n %
10if n == i**
3+ j**
3+ k**3:
return numre
start = time.time(
)for i in
range
(10000):
num = method2(
)end = time.time(
)print
(num,end - start)
第一種方法比第二種方法快一點 python書中練習題 python練習題
1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...
python的練習題 Python練習題
1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...
python程式設計題 python程式設計練習題目
github上面的乙個專案,分為level1,level2,level3 三個等級的難度。練習題1 隨機生成一列資料,畫出這些資料的分布 概率密度曲線,以及進行歸一化 標準化之後的分布 概率密度曲線。解答 歸一化 標準化 中心化 import numpy as np import matplotli...