市python学习班第三次作业

题目和程序见下面代码。

#1、编制一个返回值为bool型的函数isPrimer(),用于判断参数是否为素数;
print("\n************the first problem:*************")
import math
def isPrimer(n):
    flag = True
    if(n < 2):
        return False
    for i in range(2,int(math.sqrt(n)+1)):
        if(n % i == 0):
            flag = False
            break
    return flag


n =int( input("please input a number:"))
flag = isPrimer(n)
print(flag)

#2、求满足条件n=a!+b!+c!的所有三位数n并输出,要求用自定义函数实现求阶乘。

print("\n************the second problem:*************")
def fac(n):
    if(n == 1 or n == 0):
        return 1
    return fac(n-1)*n

for i in range(0,7):
    for j in range(i,7):
        for k in range(j,7):
            if(i != j and i != k and j!= k ):
                temp = fac(i) + fac(j)+fac(k)
                if(temp >=100 and temp <= 999):
                    print('%d = %d! + %d! + %d! ' %(temp,i,j,k))


#3楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编程序计算共有多少种不同的走法?
#需求: 编制一个返回值为整型的函数f(n),用于获取n阶台阶的走法;
print("\n************the third problem:*************")
def f(n):
    if(n == 1 or n == 0):
        return 1
    return f(n-1) + f(n - 2)

n = int (input("please input the number for step(0<=step<=20):"))
print(f(n))





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值