上机任务3

1、 求斐波那契数列中的第n个数的值:1,1,2,3,4,5,8,13,21,34...

while True:
    n=int(input("请输入斐波那契数的序号:"))
    qian=1
    hou=1
    if n<=0:
        print('请输入正数')
    elif n<=2:
        print('斐波那契数列第',n,'位是',1)
    else:
        for i in range(n-2):
            qian,hou = hou,qian+hou

        print('斐波那契数列第',n,'位是',hou)

2. 判断101-200之间有多少个素数,并输出所有的素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明次数不是素数反之是素数。

prime_count=0  # 定义素数的数量
for i in range(101,201):  # 外循环查找素数
    judge = True          # 先假定为素数
    for j in range(2,i):
        if(i%j==0):       # 内循环查找,一旦发现有除过1和它本身的因数,立马判断为非素数
           judge =  False
           break
    else:
        prime_count +=1
        print(i)

print('101-200素数的数量是', prime_count)

3.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数字本身,例如153是一个水仙花数,因为153=1^3 +5^3 +3^3

print('水仙花数有:')
for i in range(100,1000):
    hundred_number = i // 100            # 获取百位
    decade_number = i // 10 % 10         # 获取十位
    last_number = i % 10                 # 获取个位
    if i == hundred_number**3+decade_number**3+last_number**3:
        print(i)
print('结束')

4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数。 分子:上一个分数的分子加分母,分母: 上一个分数的分子

fz = 2
fm = 1
for _ in range(19):
    fz,fm = fz+fm,fz   #先执行右边,再赋值运算给左边
print(fz,'/',fm)

5.给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数:

while True:
    number  = input('请输入一个正整数:')

    if (number.isdigit()):
        number = int(number)
        total_number = 0
        print('逆序打印各位数字:')
        while number % 10 != 0:
            print(number % 10,end="")
            number = number // 10
            total_number += 1

        print('\n该正整数有',total_number,'位')
    else:
        print('输入错误!')
发布了136 篇原创文章 · 获赞 43 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lsmxx/article/details/102937200