-
判断101-200之间有多少个素数,并输出所有素数。
count = 0 for num in range(101, 200): for x in range(2, num): if num % x == 0: break else: print(num)
-
求整数1~100的累加值,但要求跳过所有个位为3的数。
sum = 0 for x in range(1, 101): if x % 10 == 3: continue sum += x print(sum)
-
有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数
num = 20 denominator = 1 # 分母 molecule = 2 # 分子 for x in range(2, num+1): molecule, denominator = molecule + denominator, molecule print(molecule, '/', denominator, sep='')
-
写程序计算 n 的阶乘 n! 的结果
result = 1 num = 5 for x in range(2, num+1): result *= x print(result)
-
求1+2!+3!+…+20!的和
sum = 0 result = 1 for num in range(1, 21): for x in range(1, num+1): result *= x sum += result result = 1 print(sum)
-
写程序求表达式 a + aa + aaa + aaaa+ … 的结果,其中a是1~9的数字,求和的项数用n来控制。(a和n可以用变量来表示)
例如:a为3, n为5的时候: 3 + 33 + 333 + 3333 + 33333
a = 3 num = a n = 5 sum = 0 for x in range(1, n+1): print(num) sum += num num = num + a * 10 ** x print(sum)
-
控制台输出三角形
a.根据n的值的不同,输出相应的形状 n = 5时 n = 4 ***** **** **** *** *** ** ** * * b.根据n的值的不同,输出相应的形状(n为奇数) n = 5 n = 7 * * *** *** ***** ***** ******* c. 根据n的值的不同,输出相应的形状 n = 4 1 121 12321 1234321 n = 5 1 121 12321 1234321 123454321
# a. n = 5 for row in range(n, 0, -1): for num in range(row): print('*', end='') print() # b. n = 7 row = int((n + 1) / 2) for x in range(1, row+1): figure_num = x * 2 - 1 # 这排的*个数 sp_num = int((n - figure_num) / 2) # 半边空格的数量 for sp in range(sp_num): print(' ', end=' ') for fi in range(figure_num): print('*', end=' ') for sp in range(sp_num): print(' ', end=' ') print() # c. n = 5 for row in range(1, n+1): sp_num = n - row # 一行中,半边空格的个数 for sp in range(sp_num): print(' ', end=' ') for num in range(1, row): print(num, end=' ') for num in range(row, 0, -1): print(num, end=' ') for sp in range(sp_num): print(' ', end=' ') print()
-
小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元正好花掉,可有哪些购买结合?
for soap in range(0, 51, 5): for tooth in range(21): shampoo = (100 - soap * 2 - tooth * 5) / 15 if (shampoo - shampoo // 1) == 0.0 and shampoo >= 0.0: print('洗发水:', shampoo, '瓶,香皂:', soap, '个,牙刷:', tooth, '把', sep='')
-
一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
n = 0 high = 8e-5 total = 1 while True: if total >= 8848.13: print('对折', n, ' 次') break total = 1 n += 1 total *= 2 ** n * high
-
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
month = 9 cp_list = [1, 1] # cp_list[m]是第m+1个月时总的兔子夫妻数 total = 2 for m in range(1, month+1): if m >= 3: cp_new = cp_list[m-3] + cp_list[m-2] cp_list.append(cp_new) print(cp_list[m - 1], '第', m, '个月有', cp_new * 2, '只兔子') else: print(cp_list[m-1], '第', m, '个月有', total, '只兔子')
-
将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
num = 90 print(num, '=', end=' ') while True: if num == 1: break lim = int(num ** 0.5 + 1) for n1 in range(2, lim): if num % n1 == 0: print(n1, '*', end=' ') break else: print(num) n1 = num num = int(num / n1)
-
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
num = int(input('请输入四位整数:')) ge = num % 10 shi = num // 10 % 10 bai = num // 100 % 10 qian = num // 1000 pw_ge = (ge + 5) % 10 pw_shi = (shi + 5) % 10 pw_bai = (bai + 5) % 10 pw_qian = (qian + 5) % 10 pw = pw_ge * 1000 + pw_shi * 100 + pw_bai * 10 + pw_qian print('加密后的值为:', pw)
-
将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
num = 90 print(num, '=', end=' ') while True: if num == 1: break lim = int(num ** 0.5 + 1) for n1 in range(2, lim): if num % n1 == 0: print(n1, '*', end=' ') break else: print(num) n1 = num num = int(num / n1)
-
本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少。
principal = 10000 interest = 3 / 1000 # 方法1: for year in range(5): principal = principal + principal * interest print('5年后,获得的本金是:', principal) # 方法2: principal = principal * (1 + interest) ** 5 print('5年后,获得的本金是:', principal)
-
输入一个整数,计算它各位上数字的和。(注意:输入的整数可以是任意位)
# 方法1: num = input('请输入一个整数:') sum1 = 0 for x in num: sum1 += int(x) print('各位上数字的和为:', sum1) # 方法2: num = int(input('请输入一个整数:')) sum1 = 0 while True: if num == 0: break sum1 += num % 10 num //= 10 print('各位上数字的和为:', sum1)
-
求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)
num1 = int(input('请输入第一个数:')) num2 = int(input('请输入第二个数:')) # Common factor公因数 lim1 = None if num1 >= num2: lim1 = num2 else: lim1 = num1 for n in range(lim1, 1, -1): if num1 % n == 0 and num2 % n == 0: common_factor = n print('最大公因数为:', n) break else: print(num1, '和', num2, '没有最大公因数', sep='') # Common multiple公倍数 # 方法1: lim2 = None if num1 >= num2: lim2 = num1 else: lim2 = num2 lim3 = num1 * num2 + 1 for n in range(lim2, lim3): if n % num1 == 0 and n % num2 == 0: print('最小公倍数为:', n) break # 方法2: commom_multiple = int(num1 * num2 / common_factor) print('最小公倍数为:', commom_multiple)
第一周周末作业-循环练习题(2)
![](https://img-home.csdnimg.cn/images/20240711042549.png)