DAY5周末作业

1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

paper = 0.08
monten = 8848130
count = 0
while paper
DAY5周末作业_第1张图片
第一题

2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

a = 0
b = 1
count = 0
while count != 6:
    print('第%s个月兔子数为%s' % (count+1,b))
    a, b, = b, a+b
    count += 1
DAY5周末作业_第2张图片
第二题

3.将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。

n = 96
k = 2
print('%s=' % n,end='')
while n!=0:
    if n % k == 0:
        if n / k == 1:
            print(k)
        else:
            print('%s*' % k,end='')
        n /= k
        if n == 1:
            break
        continue
    else:
        k += 1
DAY5周末作业_第3张图片
第三题

4. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。

m = int(input('输入第一个数:'))
n = int(input('输入第二个数:'))
if m>n:
    m ,n = n, m
i = m
while i>=2:
    if m%i == 0 and n%i == 0:
        print('最大公约数为:%s,最小公倍数为:%s' % (i,m*n/i))
    i -= 1
DAY5周末作业_第4张图片
题目四

5. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程 找出1000以内的所有完数

求出所有因数并相加,判断是否为完全数

for num in range(1, 1000):
    sum1 = 0
    i = 1
    while i
DAY5周末作业_第5张图片
题目五

6.输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

date = input('输入完整日期(xxxx/xx/xx):')
date_list = date.split('/')
year = int(date_list[0])
month = int(date_list[1])
day = int(date_list[2])
jan = 0
feb = 31 + jan
mar = 28 + feb
apl = 31 + mar
may = 30 + apl
jun = 31 + may
jul = 30 + jun
aug = 31 + jul
sep = 31 + aug
octo = 30 + sep
nov = 31 + octo
dec = 30 + nov
date_list_all = [jan, feb, mar, apl, may, jun, jul, aug, sep, octo, nov, dec]
sum1 = 0
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
    if month > 2:
        sum1 = 1
        sum1 = sum1 + date_list_all[month-1] + day
        print('%s年的第%s天' % (year, sum1))
    else:
        sum1 = sum1 + date_list_all[month - 1] + day
        print('%s年的第%s天' % (year, sum1))
else:
    sum1 = sum1 + date_list_all[month - 1] + day
    print('%s年的第%s天' % (year, sum1))
DAY5周末作业_第6张图片
题目六

7. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值

num_str = input('输入一个四位整数:')
num_list = []
for n in num_str:
    num_list.append(str((int(n)+5)%10))
num_list[0], num_list[3] = num_list[3], num_list[0]
num_list[1], num_list[2] = num_list[2], num_list[1]
num = ''.join(num_list)
print(num)
DAY5周末作业_第7张图片
题目七

8.获取第n个丑数。 什么是丑数: 因子只包含2,3,5的数

n = int(input('输入n的值:'))
count = 0
i = 2
while count != n:
    j = i
    while j%2 == 0:
        j /= 2
    while j%3 == 0:
        j /= 3
    while j%5 == 0:
        j /= 5
    if j == 1:
        count += 1
    i += 1
print('第%s个丑数是%s' % (count, i-1))
DAY5周末作业_第8张图片
题目八

你可能感兴趣的:(DAY5周末作业)