斐波那契數列
斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖爲例子而引入,故又稱爲“兔子數列”,指的是這樣一個數列:1、1、2、3、5、8、13、21、34、……在數學上,斐波那契數列以如下被以遞推的方法定義:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用。
eg.輸出斐波那契數列的前20個數
a = 0
b = 1
for _ in range(20):
a, b = b, a + b
print(a, end=' ')
說明:Python中下劃線的5種意義
end=' '的意義:print默認是打印一行,結尾加換行,end=' '末尾不換行,加空格,這樣print函數不會在字符串末尾添加一個換行符,而是添加一個空字符串,表示這個語句還沒有結束。
迴文數
迴文數是指將一個正整數從左往右排列和從右往左排列值一樣的數。
eg.判斷迴文數
num = int(input('請輸入一個正整數: '))
temp = num
num2 = 0
while temp > 0:
num2 *= 10
num2 += temp % 10
temp //= 10
if num == num2:
print('%d是迴文數' % num)
else:
print('%d不是迴文數' % num)
說明:更多運算符可見常見運算符。
完美數
完美數是除了自身外其他所有因子的和正好等於這個數本身的數。
例:6=1+2+3,28=1+2+4+7+14等。
eg.找出1~9999之間所有的完美數
import math
for num in range(1, 10000):
result = 0
for factor in range(1, int(math.sqrt(num)) + 1):
if num % factor == 0:
result += factor
if factor > 1 and num // factor != factor:
result += num // factor
if result == num:
print(num)
水仙花數
水仙花數是各位數的立方和等於這個數本身,例153=1**3+5**3+3**3等。(**爲指數運算符)
eg.找出100~999之間的所有水仙花數
for num in range(100, 1000):
low = num % 10
mid = num // 10 % 10
high = num // 100
if num == low ** 3 + mid ** 3 + high ** 3:
print(num)
素數
eg.找出2~99之間的素數
import math
for num in range(2, 100):
is_prime = True
for factor in range(2, int(math.sqrt(num)) + 1):
if num % factor == 0:
is_prime = False
break
if is_prime:
print(num, end=' ')