1.生成斐波那契数列的前20个数。
说明:斐波那契数列(Fibonacci sequence),又称黄金分割数列,是意大利数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)在《计算之书 中提出一个在理想假设条件下兔子成长率的问题而引入的数列,所以这个数列也被戏称为"兔子数列"。
斐波那契数列的特点是数列的前两个数都是1,从第三个数开始,每个数都是它前面两个数的和,
形如:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …。
斐波那契数列在现代物理、准晶体结构、化学等领域都有直接的应用。
def fb(n): #求单个的斐波那契数列
if n == 1 or n == 2:
return 1
else:
result = fb(n-1) + fb(n-2)
return result
for i in range(1,21):#循环20次
result1 = fb(i) #列出前20个斐波那契数列
print(result1)
2.找出10000以内的完美数。 说明:完美数又称为完全数或完备数,它的所有的真因子(即除了自身以外的因子)的和(即因子函数)恰好等于它本身。
例如:6(6=1+2+36=1+2+36=1+2+3)和28(28=1+2+4+7+1428=1+2+4+7+1428=1+2+4+7+14)就是完美数。
完美数有很多奇的特性,点击跳转深入了解。
import math
def perfect(num):
sums = 0
for factor in range(1,int(math.sqrt(num))+1):
if num % factor == 0:
sums += factor
if factor >1 and factor != num // factor:
sums += num // factor
if sums == num:
return True
else:
return False
def perfect_num(a,b):
if a > b:
a,b = b,a
for number in range(a,b + 1):
if perfect(number):
print(number)
result = perfect_num(1,1000)
print(result)
此题参考此大神助我理解(虽然还是不是很透彻)
3.输出100以内所有的素数。
说明:素数指的是只能被1和自身整除的正整数(不包括1)
# 输出100以内所有的素数。
# 说明:素数指的是只能被1和自身整除的正整数(不包括1)。
# def isPrime(num):#判断是否为素数
#
#
# if num <= 1:#1不是质数
# return False
#
# num1 = 2
# while num1 * num1 <= num:# 其他数字相乘可以得到这个数字
# if num % num1 == 0:#如果输入的数字可以被其他数字整除,也不是素数
# return False
# num += 1
# return True
# 以上也为素数判断
from math import sqrt
def isPrime(num):
if num == 1:
return False
for i in range(2, int(sqrt(num))+1): #如果输入的数字可以被其他数字整除,也不是素数
if num % i == 0:
return False
return True
for i in range(1, 100):#循环输出
if isPrime(i):
print(i)
推荐一篇说的比较详细的,也是有所启发,感谢
还没办法完全理解题目以及答案。。。
香菇。。