斐波那契数列、完美数、100以内素数···

Madeleine ·
更新时间:2024-11-10
· 803 次阅读

今日总结(三道题)

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)

推荐一篇说的比较详细的,也是有所启发,感谢
还没办法完全理解题目以及答案。。。
香菇。。


作者:焦虑区ing



斐波那契数列 斐波那契 素数

需要 登录 后方可回复, 如果你还没有账号请 注册新账号