-
判断101-200之间有多少个素数,并输出所有素数。
count = 0 for i in range(101,201): for j in range(2,int(i**0.5)+1): if i % j == 0: break else: count += 1 print(i,'是素数') print('101-200之间素数有%d个'%count)
-
求整数1~100的累加值,但要求跳过所有个位为3的数。
sum1 = 0 for i in range(1,101): if i % 10 == 3: continue else: sum1 += i print('1~100且个位不为3的数的累加值为:',sum1) #1~100且个位不为3的数的累加值为: 4570
-
有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数
x1 = 2 x2 = 3 y1 = 1 y2 = 2 i = 4 if i > 2: for j in range(i-2): x1, y1 = x2, y2 x2, y2 = x1 + y1, x1 print('%d/%d'%(x2, y2)) elif i == 1: print('%d/%d'%(x1, y1)) elif i == 2: print('%d/%d'%(x2, y2)) else: print('请输入正整数!')
-
写程序计算 n 的阶乘 n! 的结果
user_num = int(input('请输入您想计算几阶乘:')) product = 1 for i in range(user_num,0,-1): product *= i print('您想计算%d的阶乘为:%d'%(user_num, product))
-
求1+2!+3!+…+20!的和
sum1 = 0 product = 1 for i in range(1,21): if i != 1: product *= i for j in range(1, i): product *= j sum1 += product product = 1 else: sum1 += 1 product = 1 print('1+2!+3!+...+20!的和为:',sum1)
-
写程序求表达式 a + aa + aaa + aaaa+ … 的结果,其中a是1~9的数字,求和的项数用n来控制。(a和n可以用变量来表示)
例如:a为3, n为5的时候: 3 + 33 + 333 + 3333 + 33333
a = int(input('请输入1~9的数:')) sum1 = 0 while not 1 <= a <= 9: print("请输入1~9的数!") break else: n = int(input('请输入项数:')) if not n > 1: print("请输入正整数!") else: for i in range(1,n + 1): product = 10 ** (i - 1) sum0 = sum1 + a * product sum1 += sum0 print('表达式的结果为:', sum1)
-
控制台输出三角形
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 = int(input('请输入正整数:')) while not n > 0: print('请输入正整数!') break else: n += 1 for i in range(n): n -= 1 for j in range(n): print('*',end='') print() #b情况 n = int(input('请输入奇数:')) while n % 2 == 0: print('请输入奇数!') break else: for i in range(1,n+1,2): for j1 in range(int((n-i)/2)): print(end=' ') for j in range(i): print('*', end='') for j2 in range(int((n-i)/2)): print(end=' ') print() #c情况 n = int(input('请输入正整数:')) while not n > 0: print('请输入正整数!') break else: for j in range(1, 2*n, 2): for x in range((2*n-j)//2): print(end=' ') for y in range(1,j//2+2): print(y, end='') if j//2 != 0 : for y1 in range(j//2 ,0,-1): print(y1, end='') for x2 in range((2*n-j)//2): print(end=' ') print()
-
小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元正好花掉,可有哪些购买结合?
for shampoo in range(1, 100//15+1): for Soap in range(1, 100//2+1): for toothbrush in range(1, 100//5+1): if shampoo*15 + Soap*2 + toothbrush*5 == 100: print('洗发水:%d瓶,香皂:%d个,牙刷:%d支'%(shampoo, Soap, toothbrush))
-
一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
height = 8848130 #珠穆朗玛峰的高度8848130mm count = 0 paper_ply = 0.08 while True: paper_ply *= 2 count += 1 if height <= paper_ply: print('一张纸要折%d次才能达到珠穆朗玛峰的高度'%count) break
-
古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
for month in range(1,13): num1 = 2 num2 = 2 if month >= 3 : for i in range(3, month + 1): num1, num2 = num2, num1+num2 print('第%d月 兔子为:%d只'%(month,num2)) elif 0 < month < 3: print('第%d月 兔子为:%d只'%(month,num1)) ''' 第1月 兔子为:2只 第2月 兔子为:2只 第3月 兔子为:4只 第4月 兔子为:6只 第5月 兔子为:10只 第6月 兔子为:16只 第7月 兔子为:26只 第8月 兔子为:42只 第9月 兔子为:68只 第10月 兔子为:110只 第11月 兔子为:178只 第12月 兔子为:288只 '''
-
将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
x = int(input('请输入一个正整数:')) if x > 0: y = [] n = x for i in range(2, n // 2 + 1): while n % i == 0: n = n / i y.append(i) #把i值加入y列表 print(x,"=",end="",sep="") for j in range(len(y)): if j == len(y)-1: print(y[j],end=" ") else: print(y[j],end="x") else: print("请输入正整数!")
-
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
user_pw = int(input("请输入四位数的数据:")) if 1000 <= user_pw < 10000: num1 = (user_pw // 1000 % 10 + 5 ) % 10 num2 = (user_pw // 100 % 10 + 5 ) % 10 num3 = (user_pw // 10 % 10 + 5 ) % 10 num4 = (user_pw % 10 + 5 ) % 10 print("加密后的值为:",num4*1000+num3*100+num2*10+num1) else: print("请输入四位数的数据!")
-
将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
x = int(input('请输入一个正整数:')) if x > 0: y = [] n = x for i in range(2, n // 2 + 1): while n % i == 0: n = n / i y.append(i) #把i值加入y列表 print(x,"=",end="",sep="") for j in range(len(y)): if j == len(y)-1: print(y[j],end=" ") else: print(y[j],end="x") else: print("请输入正整数!")
-
本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少。
years = 5 money = 10000 for i in range(1,years+1): money = money*1.003 print('5年后,获得的本金为:',money) #5年后,获得的本金为: 10150.902704052423
-
输入一个整数,计算它各位上数字的和。(注意:输入的整数可以是任意位)
num = int(input('请输入一个整数:')) sum1 = 0 count = 0 num1 = num while True: if num1 != 0: num1 //= 10 count += 1 else: break for i in range(1,count+1): y = num // 10**(i-1) % 10 sum1 += y print(num,'各个位上的和为:',sum1)
-
求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)
user_num1 = int(input("请输入第一个正整数")) user_num2 = int(input("请输入第二个正整数")) num1 = user_num1 num2 = user_num2 product = num1 * num2 if num1 < num2: num1, num2 = num2, num1 remainder = num1 % num2 while True: num1 = num2 num2 = remainder remainder = num1 % num2 if remainder == 0: break print("%d和%d的的最小公倍数为:%d,最大公约数为:%d"%(user_num1,user_num2,num2,product//num2))
3月7日循环练习题
最新推荐文章于 2023-08-05 22:25:32 发布