市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))





发布了88 篇原创文章 · 获赞 22 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/xuechen_gemgirl/article/details/89026127