写一个python函数:输出如下菜单: 1 计算n! 2 输出素数 3 判定闰年 根据输入(1、2、3),接受数据输入,计算n!或输出某范围内的所有素数或判定给定年是否闰年,并输出计算结果。 要求:输出菜单,每个菜单项计算各定义一个函数,共四个函数。 输入 测试次数t 每组测试数据格式如下: 选项(1,2,3或其它),后跟需要的数据。 如: 输入1 10,表示计算n!。 输入2 10 100,表示输出10到100之间的所有素数。 输入3 2000,表示判
时间: 2024-03-13 07:44:08 浏览: 73
好的,以下是实现上述功能的Python代码:
```python
import math
# 计算阶乘
def factorial():
n = int(input("请输入一个整数n:"))
res = 1
for i in range(1, n + 1):
res *= i
print("{}! = {}".format(n, res))
# 输出素数
def prime():
start = int(input("请输入一个起始整数:"))
end = int(input("请输入一个结束整数:"))
primes = []
for i in range(start, end + 1):
flag = True
for j in range(2, int(math.sqrt(i)) + 1):
if i % j == 0:
flag = False
break
if flag and i > 1:
primes.append(i)
print("{}到{}之间的素数为:{}".format(start, end, primes))
# 判断闰年
def leap_year():
year = int(input("请输入一个年份:"))
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
print("{}年是闰年".format(year))
else:
print("{}年不是闰年".format(year))
# 输出菜单
def menu():
print("1 计算n!")
print("2 输出素数")
print("3 判定闰年")
# 主函数
if __name__ == "__main__":
t = int(input("请输入测试次数t:"))
for i in range(t):
menu()
choice = input("请输入选项:")
if choice == "1":
factorial()
elif choice == "2":
prime()
elif choice == "3":
leap_year()
else:
print("无效选项!")
```
该程序定义了四个函数,分别实现了计算阶乘、输出素数、判断闰年和输出菜单的功能。其中,`factorial()` 函数通过循环计算阶乘,`prime()` 函数通过判断每个数是否为素数来输出指定范围内的素数,`leap_year()` 函数通过判断年份是否满足闰年条件来判断该年份是否为闰年。在主函数中,先读入测试次数 `t`,然后根据菜单选项分别调用对应的函数。
阅读全文