1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
thickness = 8 * 10 ** (-4)
a = 0
while True:
thickness = thickness * 2
a += 1
if thickness >= 8848.13:
print(a, '次', sep='')
break
2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
pre_1 = 0
pre_2 = 0
n = 1
for i in range(int(input('月份:'))-1):
pre_1 = pre_2
pre_2 = n
n = pre_1 + pre_2
print('兔子数量:', n * 2, '只')
3. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
a = []
num = int(input('请输入一个正整数:'))
for sum in range(2, num + 1):
for i in range(2, int(sum**0.5) + 1):
if sum % i == 0:
break
else:
a.append(sum)
print(num, '=', end='', sep='')
for i in a:
if num % i == 0:
print('', i, '*', end='', sep='')
num = num / i
a.append(i)
4. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
print('请输入两个正整数')
m = int(input('m='))
n = int(input('n='))
max1 = m
min1 = n
if m < n:
max1 = n
min1 = m
while True:
if max1 % min1 == 0:
print('最大公约数:', min1)
break
a = min1
min1 = max1 % min1
max1 = a
print('最小公倍数:', int(m * n / min1))
5. 一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3. 编程 找出1000以内的所有完数
for num in range(2, 1001):
sum = 0
for i in range(1, num):
if num % i == 0:
sum += i
if sum == num:
print(sum)
6.输入某年某月某日,判断这一天是这一年的第几天? 程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
7. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
p = int(input('请输入4位原始数据:'))
a = p // 1000
b = p % 1000 // 100
c = p % 100 // 10
d = p % 10
a = (a + 5) % 10
b = (b + 5) % 10
c = (c + 5) % 10
d = (d + 5) % 10
e = a
f = b
a = d
d = e
b = c
c = f
print(a, b, c, d, sep='')
8. 获取第n个丑数。 什么是丑数: 因子只包含2,3,5的数
6 = 1 * 2 * 3 -> 丑数
2 = 1 * 2 -> 丑数
7 = 1 * 7 -> 不是丑数
1, 2, 3, 4, 5, 6, 8,9,10, 12 ….