-
判断101-200之间有多少个素数,并输出所有素数。
prime_numbers = [] for number in range(101, 201): for i in range(2, number): if not number % i: break else: prime_numbers.append(number) print(f'101-200之间有{len(prime_numbers)}个素数,如下:\n{prime_numbers}')101-200之间有21个素数,如下: [101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199] -
求整数1~100的累加值,但要求跳过所有个位为3的数。
summ = 0 for i in range(1, 101): if int(str(i)[-1]) == 3: continue summ += i print(f'累加值为{summ}')累加值为4570 -
有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数
n = 20 numbers1 = [2, 3] numbers2 = [1, 2] for i in range(2, n): numbers1.append(numbers1[i-2] + numbers1[i-1]) numbers2.append(numbers2[i-2] + numbers2[i-1]) print(f'第{n}个分数是{numbers1[-1]} / {numbers2[-1]}')第20个分数是17711 / 10946 -
写程序计算 n 的阶乘 n! 的结果
n = input('多少的阶乘?:') try: n = int(n) except: print('格式不对!') else: product = 1 for i in range(1, n+1): product *= i print(f'{n}的阶乘结果为:{product}')多少的阶乘?:10 10的阶乘结果为:3628800 -
求1+2!+3!+…+20!的和
summ = 0 for n in range(1, 21): product = 1 for i in range(1, n+1): product *= i summ += product print(summ)2561327494111820313 -
写程序求表达式 a + aa + aaa + aaaa+ … 的结果,其中a是1~9的数字,求和的项数用n来控制。(a和n可以用变量来表示)
例如:a为3, n为5的时候: 3 + 33 + 333 + 3333 + 33333
a = input('数字a=:') n = input('项数n=:') try: a = int(a) n = int(n) except: print('格式不对!') else: if 1 <= a <= 9: summ = 0 for i in range(1, n+1): summ += int(str(a) * i) print(summ) else: print('请输入1-9的a!')数字a=:3 项数n=:5 37035 -
控制台输出三角形
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 123454321n = input('请输入n:') shape = input('请输入形状a,b或c:') try: n = int(n) except: print('格式不对!') else: if shape not in 'abc': print('形状为a,b或c!') # 形状a elif shape == 'a': for i in range(n): for j in range(i, n): shape_a = '*' print(shape_a, end='') print() # 形状b elif shape == 'b': if not n % 2: print('形状c的n为奇数!') elif n % 2: for i in range(1, n+1, 2): # 每行 = 左边空格 + 中间星星 + 右边空格 shape_b = (' ' * int((n-i)/2) + '*' * i + ' ' * int((n-i)/2)) print(shape_b) # 形状c elif shape == 'c': for i in range(1, n+1): str_numbers = '' for j in range(1, i+1): str_numbers += str(j) # 每行 = 左边空格 + 左边序列 + 中心数 + 右边序列 + 右边空格 shape_c = (' ' * (n-i) + str_numbers[:-1] + # 最后一位不取 str(i) + str_numbers[:-1][::-1] + ' ' * (n-i)) print(shape_c)请输入n:7 请输入形状a,b或c:c 1 121 12321 1234321 123454321 12345654321 1234567654321 -
小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元正好花掉,可有哪些购买结合?
# 每种至少买一个 money, shampoo, soap, brush = 100, 15, 2, 5 for n_shampoo in range(1, money // shampoo + 1): money_left_1 = money - n_shampoo * shampoo for n_brush in range(1, money_left_1 // brush + 1): money_left_2 = money_left_1 - n_brush * brush for n_soap in range(1, money_left_2 // soap + 1): money_left_3 = money_left_2 - n_soap * soap if money_left_3 == 0: print(f'洗发水{n_shampoo}个,牙刷{n_brush}个,香皂{n_soap}个。')洗发水1个,牙刷1个,香皂40个。 洗发水1个,牙刷3个,香皂35个。 洗发水1个,牙刷5个,香皂30个。 洗发水1个,牙刷7个,香皂25个。 洗发水1个,牙刷9个,香皂20个。 洗发水1个,牙刷11个,香皂15个。 洗发水1个,牙刷13个,香皂10个。 洗发水1个,牙刷15个,香皂5个。 洗发水2个,牙刷2个,香皂30个。 洗发水2个,牙刷4个,香皂25个。 洗发水2个,牙刷6个,香皂20个。 洗发水2个,牙刷8个,香皂15个。 洗发水2个,牙刷10个,香皂10个。 洗发水2个,牙刷12个,香皂5个。 洗发水3个,牙刷1个,香皂25个。 洗发水3个,牙刷3个,香皂20个。 洗发水3个,牙刷5个,香皂15个。 洗发水3个,牙刷7个,香皂10个。 洗发水3个,牙刷9个,香皂5个。 洗发水4个,牙刷2个,香皂15个。 洗发水4个,牙刷4个,香皂10个。 洗发水4个,牙刷6个,香皂5个。 洗发水5个,牙刷1个,香皂10个。 洗发水5个,牙刷3个,香皂5个。 -
一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
thick = 0.08 * 10**(-3) mount = 8848.13 n = 0 while thick < mount: n += 1 thick *= 2 print(f'对折{n}次后达到珠穆朗玛峰的高度。')对折27次后达到珠穆朗玛峰的高度。 -
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
##### Fibonacci数列 x 2 只 n = input('请输入第几个月:') try: n = int(n) except: print('格式不对!') else: old_1 = 1 old_2 = 0 old_3 = 0 if n < 1: print('请输入正整数!') else: if n == 1: print('第1个月有兔子2只。') else: for i in range(n-1): old_3 += old_2 old_2, old_1 = old_1, old_3 sum_pair = old_1 + old_2 + old_3 else: print(f'第{n}个月兔子有{sum_pair * 2}只。')请输入第几个月:9 第9个月兔子有68只。 -
将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
num = input('请输入一个正整数:') try: num = int(num) except: print('格式不对!') else: if num <= 0: print('不是正整数!') else: eq = f'{num}=' quotient = num while quotient != 1: # 商为1时不再循环 for factor in range(2, int(quotient)+1): if quotient % factor == 0: # 检查因子是不是质数 for factor_f in range(2, int(factor**.5)+1): if factor % factor_f == 0: # 非质不要 break else: eq += f'{factor}x' quotient /= factor break print(eq[:-1])请输入一个正整数:170 170=2x5x17 -
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
num = input('请输入四位的整数:') try: num = int(num) except: print('格式不对!') else: if len(str(num)) != 4: print('位数不对!') else: en_code = '' for i in str(num): en_code += str((int(i) + 5) % 10) en_code = en_code[::-1] print(f'加密后的值为:', en_code)请输入四位的整数:3457 加密后的值为: 2098 -
本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少。
year = 5 rate = 0.003 money = 10000 for i in range(year): money *= 1 + rate print(f'{year}年后,获得本金{money}元')5年后,获得本金10150.902704052423元 -
输入一个整数,计算它各位上数字的和。(注意:输入的整数可以是任意位)
num = input('请输入一个整数:') try: num = int(num) except: print('格式不对!') else: summ = 0 sign = 1 if num < 0: num = str(num)[1:] sign = -1 else: num = str(num) for i in num: summ += int(i) print(f'{num}各位上的数字的和为:{summ * sign}')请输入一个整数:123 123各位上的数字的和为:6 -
求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)
a = input('请输入第一个整数:') b = input('请输入第二个整数:') try: a, b = int(a), int(b) except: print('格式不对!') else: common_divi = 1 common_multi = 1 small = min(a, b) big = max(a, b) for divi in range(1, small+1, -1): if small % divi == 0 and big % divi == 0: common_divi = divi break for multi in range(big, small*big+1): if multi % big == 0 and multi % small == 0: common_multi = multi break print(f'{a}和{b}的最大公约数:{common_divi}\n{a}和{b}的最小公倍数:{common_multi}')请输入第一个整数:4 请输入第二个整数:7 4和7的最大公约数:1 4和7的最小公倍数:28
周末作业-循环练习题
最新推荐文章于 2023-03-10 20:43:30 发布
本文解决了一系列编程挑战题目,包括计算素数数量、累加求和、斐波那契数列等,通过具体实例展示了多种算法的应用。
4894

被折叠的 条评论
为什么被折叠?



