python-100-days

本文分享了如何用Python实现斐波那契数列的前20项,使用暴力法寻找10000以内完美数,以及列举100以内所有素数的代码。通过实例了解斐波那契数列的定义和应用,以及数学概念在编程中的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

你好!个人代码记录,欢迎指正。持续更新中…

1.斐波那契数列

题目要求:生成斐波那契数列的前20个数。

说明:斐波那契数列(Fibonacci sequence),又称黄金分割数列,是意大利数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)在《计算之书》中提出一个在理想假设条件下兔子成长率的问题而引入的数列,所以这个数列也被戏称为"兔子数列"。斐波那契数列的特点是数列的前两个数都是1,从第三个数开始,每个数都是它前面两个数的和,形如:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …。斐波那契数列在现代物理、准晶体结构、化学等领域都有直接的应用。
个人代码实现:

f_list = [1,1]
for i in range(2,20):
	next = f_list[i-1]+f_list[i-2]
	f_list.append(next)
print(f_list)

作者给的代码参考:

a = 0
b = 1
for _ in range(20):
    a, b = b, a + b
    print(a, end=' ')

2.找出10000以内的完美数

说明:完美数又称为完全数或完备数,它的所有的真因子(即除了自身以外的因子)的和(即因子函数)恰好等于它本身。例如:6( 6 = 1 + 2 + 3 6=1+2+3 6=1+2+3)和28( 28 = 1 + 2 + 4 + 7 + 14 28=1+2+4+7+14 28=1+2+4+7+14)就是完美数。完美数有很多神奇的特性,有兴趣的可以自行了解。
个人代码实现:(暴力求解)

perfect_number = 0
perfect_list = []
for i in range(2,10001):
	for j in range(1,i):
		if i%j ==0:
			perfect_number += j
	if perfect_number == i:
		perfect_list.append(i)
	perfect_number = 0
print(perfect_list)

作者给的代码参考:

import math

for num in range(2, 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)

3.输出100以内所有的素数。

说明:素数指的是只能被1和自身整除的正整数(不包括1)。
个人代码实现:

import math

prime_number =[]
for x in range(2,101):
	a = int(math.sqrt(x))
	is_prime = True
	for y in range(2,a+1):
		if x%y == 0:
			is_prime = False
			break
	if is_prime:
		prime_number.append(x)
print(prime_number)

作者给的代码参考:

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=' ')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值