题目和程序见下面代码。
#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))