【Python入门基础】斐波那契、回文数、完美数、水仙花数及素数实例

斐波那契数列

      斐波那契数列(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=' ')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章