输入666,打印出666=2*3*3*37
def prime_num():
"""
输入一个正整数,分解其质因数并以星号连接的形式输出。
若输入非整数或零,则输出相应错误信息。
"""
# 获取用户输入的字符串形式的数字
tar = input('请输入一个正整数:')
# 检查输入是否为整数
if not tar.isdigit():
print(f'{tar}不是整数。')
return
# 将输入的字符串转换为整数
tar = int(tar)
# 检查输入的整数是否为零
if tar == 0:
print(f'{tar}不是正整数。')
# 检查输入的整数是否为1,如果是则直接输出1
elif tar == 1:
print(tar)
else:
# 初始化一个空列表,用于存储分解出的质因数
result = []
# 循环直到输入的整数被完全分解
while tar != 1:
# 遍历从2到当前整数的所有数字,寻找能整除的因数
for i in range(2, tar + 1):
if tar % i == 0:
# 若找到因数,则将因数整除当前整数,并将因数添加到结果列表中
tar //= i
result.append(str(i))
break
# 将结果列表中的元素用星号连接并输出
print('*'.join(result))
prime_num()
评论前必须登录!
注册