Python練習題 第13題 列印水仙花數

2021-10-04 03:22:22 字數 1712 閱讀 2368

題目:列印出所有的「水仙花數」,所謂「水仙花數」是指乙個三位數,其各位數字立方和等於該數

本身。例如: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...