1.找出10000以内的从小到大的第三个完美数;说明:完美数又称为完全数或完备数,它的所有的真因子(即除了自身以外的因子)的和(即因子函数)恰好等于它本身。例如:6(6=1+2+3)和28(28=1+2+4+7+14)就是完美数。
def is_perfect_number(num):
factors_sum = 0
for factor in range(1,num):
if num % factor == 0:
factors_sum += factor
return factors_sum == num
count = 0
num = 1
while count < 3:
if is_perfect_number(num):
count += 1
if count == 3:
print(f'第三个完美数是:{num}')
num += 1
# 运行结果:第三个完美数是:496
2.2022-05-08这一日期是2022年的第几天。
from datetime import datetime
input_date = '2022-05-08'
date_object = datetime.strptime(input_date,'%Y-%m-%d')
day_of_year = date_object.timetuple().tm_yday
print(f'{input_date}是该年的第{day_of_year}天')
# 运行结果:2022-05-08是该年的第128天
'''
知识点
tm_yday 计算一年中的第几天,范围[1,366]
tm_mday 计算一月中的第几天,范围[1,31]
tm_wday 计算一周中的第几天,范围[0,6] 0代表星期一
'''
3. 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?输出数字总个数;
count = 0
numbers = [1,2,3,4]
for i in numbers:
for j in numbers:
for k in numbers:
if i!=j and i!=k and j!=k:
num = i*100+j*10+k
#print(num)
count += 1
print(count)
# 运行结果:24
5.输出斐波那契数列索引为15的数;(索引从0开始数)
斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
def Fibonacci(index):
if index == 0:
return 0
if index == 1:
return 1
else:
fib = [0,1]
for i in range(2,index+1):
fib.append(fib[i-1]+fib[i-2])
return fib[i]
print(Fibonacci(15))
# 运行结果:610
6. 将230分解质因数,结果保留质因数中最大的那个数。
def prime_factors(num):
factors = []
divisor = 2
while divisor <= num:
if num % divisor == 0:
factors.append(divisor)
num //= divisor
else:
divisor += 1
return max(factors)
max_prime_factors = prime_factors(230)
print(max_prime_factors )
# 运行结果:23
7.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?答案保留整数部分(format);
ini_height = 100
total_distance = 0
for _ in range(11):
total_distance += ini_height * 2
ini_height /= 2
total_distance = int(total_distance-100)
print(total_distance)
# 运行结果:299