如何写一个判断输入整数是否是质数,若不是求其质因数的程序,要求用列表输出。
具体实现代码如下:
n = int(input("请输入一个整数:"))
factors = []
# 判断是否为质数
if n < 2:
print(n, "不是质数")
else:
prime = True
for i in range(2, int(n**0.5)+1):
if n % i == 0:
prime = False
factors.append(i)
while n % i == 0:
n //= i
if n > 1:
factors.append(n)
if prime:
print(n, "是质数")
else:
print("质因数列表:", factors)
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
不知道你这个问题是否已经解决, 如果还没有解决的话:使用传统写法、重复代码较多
def login():
print('login')
def register():
print('register')
def transfer():
print('transfer')
def withdraw():
print('withdraw')
while True:
choice = input('输入操作编号:').strip()
print('''
0、退出
1、登录
2、注册
3、转账
4、提现
''')
# 功能越多,分支结构越长
if choice == '0':
break
elif choice == '1':
login()
elif choice == '2':
register()
elif choice == '3':
transfer()
elif choice == '4':
withdraw()
经过函数对象优化后写法
# 写好功能函数
def login():
print('login')
def register():
print('register')
def transfer():
print('transfer')
def withdraw():
print('withdraw')
# 将函数对象集合在字典里的列表,并添加了提示信息
fun_dic = {
'1':[login,'转账'],
'2':[register,'注册'],
'3':[transfer,'转账'],
'4':[withdraw,'体现']
}
while True:
print('0 退出登录系统') # 没有0 补充添加
for k,v in fun_dic.items(): # 省略了之前的较长的提示信息内容
print(k,v[-1]) # 打印出提示信息
# 编号 以及列表最后一位的内容
choice = input('输入操作编号:').strip()
if choice == '0':
break
if choice in fun_dic: # 判断输入的编号是否对应字典的key
fun_dic[choice][0]() # 调用字典里面 对应编号的列表里面的函数对象
# 通过key找到 列表下面的第一个元素也就是函数对象 括号执行
else: # 表示输入的编号不存在
print('没有这个选项,请重新输入')
技术小白记录学习过程,有错误或不解的地方请指出,如果这篇文章对你有所帮助请
点赞收藏+关注
谢谢支持!