周末作业——循环练习题
作者:互联网
1、判断101-200之间有多少个素数,并输出所有素数。
count = 0
print('101-200之间的素数有')
for num in range(101, 201):
for x in range(2, int(num**0.5 + 1)):
if num % x == 0:
break
else:
print(num, end=' ')
count += 1
print()
print('共有', count, '个')
2、求整数1~100的累加值,但要求跳过所有个位为3的数。
count = 0
for num in range(1, 101):
if num % 10 == 3:
continue
count += num
print('累加值为', count)
3、有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数
molecule = 1
denominator = 1 # Fibonacci_n的后一位
for x in range(20):
molecule, denominator = denominator, molecule + denominator
print('第20个分数是:', denominator, '/', molecule)
4、写程序计算 n 的阶乘 n! 的结果
n = int(input('请输入n:'))
count = 1
for x in range(1, n + 1):
count *= x
print('阶乘 n! 的结果', count)
5、求1+2!+3!+…+20!的和
count = 1
sum1 = 0
for x in range(1, 21):
count *= x
sum1 += count
print('结果是', sum1)
6、写程序求表达式 a + aa + aaa + aaaa+ … 的结果,其中a是1~9的数字,求和的项数用n来控制。(a和n可以用变量来表示)
例如:a为3, n为5的时候: 3 + 33 + 333 + 3333 + 33333
a = int(input('请输入参数a:'))
n = int(input('请输入参数n:'))
count = 0
for i in range(1, n+1):
count += a
a = a * 10 + a % 10
print(count)
7、控制台输出三角形
a.根据n的值的不同,输出相应的形状
n = 5时 n = 4
***** ****
**** ***
*** **
** *
*
n = int(input('请输入参数n:'))
for x in range(n):
for y in range(n, x, -1):
print('*', end='')
print()
b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5 n = 7
* *
*** ***
***** *****
*******
n = int(input('请输入参数n:'))
while True:
if n % 2 == 0:
n = int(input('请输入奇数!请输入参数n:'))
continue
else:
for x in range(n // 2 + 1):
for z in range(n // 2 - x):
print(end=' ')
for y in range(x * 2 + 1):
print('*', end='')
print()
break
c. 根据n的值的不同,输出相应的形状
n = 4
1
121
12321
1234321
n = 5
1
121
12321
1234321
123454321
n = int(input('请输入参数n:'))
for x in range(n):
for y in range(n-x):
print(' ', end='')
for z in range(1, x+2):
print(z, end='')
for z in range(x, 0, -1):
print(z, end='')
print()
8、小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元正好花掉,可有哪些购买结合?
shampoo = 0 # 洗发水
soap = 0 # 香皂
toothbrush = 0 # 牙刷
for shampoo in range(1, 7):
for soap in range(1, 51):
toothbrush = (100 - shampoo * 15 - soap * 2) // 5
if (100 - shampoo*15 - soap*2) % 5 == 0 and toothbrush > 0:
print('洗发水:', shampoo, '香皂:', soap, '牙刷:', toothbrush)
9、一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
count = 0
n = 1
unit = 8e-5
while count < 8848.13:
count = unit * 2**n
n += 1
print(n)
10、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
mouth0 = 1 # 第一个月的兔子对数
mouth1 = 1 # 第二个月的兔子对数
n = int(input('请输入月份'))
if n == 1 or n == 2: # 前两个月兔子还没成年,兔子总数是2个
print('前两个月兔子还没成年,兔子总数是2个')
else:
for x in range(3, n+1):
mouth1, mouth0 = mouth0 + mouth1, mouth1
print('第', n, '月兔子有', 2*mouth1, '只')
11、将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
num = int(input('请输入一个正整数:'))
sum1 = num
temp = [] # 存储因数的列表
while sum1 != 1:
for x in range(2, num + 1):
if sum1 % x == 0:
temp.append(x) # 得到一个因数就将它添加到temp列表中
sum1 //= x # 将sum1替换成另一个因数,直到sum1变成1;
if sum1 != 1:
temp.append('x') # 每进行添加一个因数,就添加一个x,最后一次不添加
break
if len(temp) == 1: # temp列表里只有一个元素,表面输入的数是素数
print('这是个素数')
else:
print(num, '=', end='', sep='')
for x in temp:
print(x, end='') # 按规定输出
12、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
while True:
number = input('请输入数据:')
if len(number) == 4:
number = int(number)
qian = number // 1000
bai = number // 100 % 10
shi = number // 10 % 10
ge = number % 10
qian, ge = (ge + 5) % 10, (qian + 5) % 10
bai, shi = (shi + 5) % 10, (bai + 5) % 10
number = qian*1000 + bai*100 + shi*10 + ge
print('加密值', number)
break
else:
print('你输入的不是4位整数,请重新输入')
13、本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少。
money = 10000
for x in range(1, 6):
money += money*0.003
print('5年后的本金是', money, '元')
14、输入一个整数,计算它各位上数字的和。(注意:输入的整数可以是任意位)
number = int(input('请输入一个整数'))
count = 0
while number != 0:
if number > 0:
count += number % 10
number = number // 10
else:
count += 10 - number % 10
number = number // 10 + 1
print('它各位上数字的和是:', count)
15、求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)
a = int(input('请输入一个数'))
b = int(input('请输入另一个数'))
divisor = 1 # 公约数
n = a if a < b else b
for x in range(2, n):
if a % x == 0 and b % x == 0:
divisor *= x
print(divisor)
print(a*b//divisor)
标签:练习题,count,10,int,作业,number,周末,range,print 来源: https://blog.csdn.net/YiCunHui12138/article/details/121701144