day5 循环练习题

Day5 循环作业题

  1. 使用for循环计算50~150中所有能被3整除但是不能被5整除的数的和

    sum=0
    for i in range(50,151):
        if i % 3==0 and i%5!=0:
            sum=sum+i
    print(sum)
    
  2. 统计100以内个位数是2并且能够被3整除的数的个数

    count=0
    for i in range(2,100,10):
        if i % 3 ==0:
            count+=1
            print(i)
    
    print(count)
    
  3. 写程序计算 n 的阶乘 n! 的结果

    i=1
    s=1
    while 1<=i<=5:
        s=s*i
        i+=1
    print(s)
    
  4. 输入任意一个正整数,求他是几位数?

    注意: 这儿不能使用字符串,只能用循环 (会用到while循环)

    num=int(input("请输入一个正整数:"))
    count=0
    while num//10>0:
        num=num//10
        count+=1
    print(count+1,"位数",sep="")
    
  5. 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)

    注意:会用break

    num=int(input("请输入一个正整数:"))
    i=1
    count=0
    while num>=i:
        if num % i ==0:
            count+=1
        i += 1
    print(count)
    if count>2:
        print("不是素数")
    else:
        print("素数")
    
  6. 判断101-200之间有多少个素数,并输出所有素数。

                                 
    
  7. 有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数


  1. 求1+2!+3!+…+20!的和

  1. 控制台输出三角形

       a.根据n的值的不同,输出相应的形状
       n = 5时             n = 4
       *****               ****
       ****                ***
       ***                 **
       **                  *
       *
        
       j=0
    while j <= 4:
        n = 4
        while n >= j:
            print("*",end="\t")
            n=n-1
        print()
        j=j+1
       
       b.根据n的值的不同,输出相应的形状(n为奇数)
       n = 5               n = 7
         *                    *
        ***                  ***
       *****                *****
                           *******
       
    j=5
    while 0<j:
        n =5
        while n >= j:
            print(' '*int((j-1)/2),"*",sep='',end="")
            n=n-1
        print(sep="")
        j=j-2
    
    
       c. 根据n的值的不同,输出相应的形状
       n = 4
          1
         121
        12321
       1234321
       
       n = 5
           1
          121
         12321
        1234321
       123454321
    
  2. 输入一个整数,计算它各位上数字的和。(注意:输入的整数可以是任意位)

num=12345
t=0
for i in str(num):
    s=int(i)
    t=t+s
print(t)
  1. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
num = 90
print('90=',end='')
x=2
while True:
    if num % x ==0:
        num=num/x
        print(x,end="")
        if num != 1:
            print('x',end='')
    else:
        x+=1
    if num==1:
        break
  1. 输出9*9口诀。 程序分析:分行与列考虑,共9行9列,i控制行,j控制列。
j=1
while j < 10:
    i = 1
    while i <= j:
        print(f"{i}","*",f"{j}","=",f"{j*i}",sep="",end="\t")
        i=i+1
    print(end="\n")
    j=j+1
  1. 本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少。
i = 1
s=10000
while i <=5:
    s*=1+0.003

    i+=1
print(s)
  1. 求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)
num1=24
num2=66
if num1>num2:
    num1,num2=num2,num1
max_gys=num1

while True:
    if num1 % max_gys==0 and num2 % max_gys==0:
        break

    else:
        max_gys=max_gys-1
print(max_gys)
num1=24
num2=66
if num1>num2:
    pass
else:
    num1,num2=num2,num1
max_gbs=num1

while True:
    if max_gbs % num1==0 and max_gbs % num2==0:
        break

    else:
        max_gbs=max_gbs+1
print(max_gbs)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值