1.一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
思路:
一张纸对折之后,可以视为纸张数X2。
n = 8
count = 0
while True:
n = 2*n
if n > 88481200:
break
count += 1
print('对折',count,'次达到珠穆朗玛峰高度')
2. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
3、将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
while True:
print('\n======求质因数运算======\n')
n = int(input('请输入你想查询的数字:'))
num = n
print(n,'=',end= '')
while True:
i=2
while num/i > int(num/i):#判断因数能否被整除,如果
i += 1
continue
else: #能被整除的数,再从2~(num/i-1)进行因素提取操作。
print(i,end='')#先打印出一个质因数
num = num/i #取出非质因数的数再继续判断
if num < 2 :#如果最后数字小于2不需要判断
break
print('*',end= '')
print()
4. 输入两个正整数m和n,求其最大公约数和最小公倍数。 程序分析:利用辗除法。
print('\n======最大公约数判断======\n')
m = int(input('enter number a:'))
n = int(input('enter number b:'))
if m<n:
m,n = n,m
print('==================\n')
while m/n >= 1:#判断m,n谁更大。方便做最大公约数计算。
yu = m % n
if yu == 0:
print(n,'是最大公约数')
break
else:
m,n = n,yu
print()
print('\n======最小公倍数判断======\n')
while True:
print('\n======最小公倍数判断======\n')
number_1 = int(input('enter number a:'))
number_2 = int(input('enter number b:'))
m = number_1 #后面求公因数需要将数字小化,为了不影响原来输入的值,做替换
n = number_2
if m<n:
m,n = n,m #调换一下大小顺序,可以避免分情况再去运算,也不影响结果。
print('==================\n')
if m / n == int(m/n):#用于判断较小的数是否能被较大的数整除,若能整除,那么最大公倍数就是数字大的那一个
print('最小公倍数是:',m) #找到最大公倍数,结束。
else:
i = 2 #从2开始取出两个数共同的质因数
zxgbs = 1 #最小公倍数
while True:
while n > i and (m % i == 0 and n % i == 0):
print('\n当前公约数判定值是:',i,'\n')
n /= i
print('\n当前较小的数值是:',n,'\n')
m /= i
print('\n当前较大的数值是:',m,'\n')
zxgbs *= i
print('\n当前最小公倍数值是:',zxgbs,'\n')
i += 1
zxgbs *= m*n
break
print(number_1,',',number_2,'最大公倍数为:',zxgbs)