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