正整数n的两个及以上的连续因数连乘中,因数的最大上限为$\lfloor\sqrt{n}\rfloor + 1$。如
如$\lfloor\sqrt{42}\rfloor + 1 = \lfloor6.48074069840786\rfloor + 1 = 7。$ $6\times7=42$
n = int(input())
res = []
for start in range(2,int(n ** 0.5) + 2):# 枚举连乘的第一个数字
seq = [] # sequence n.序列
if n % start == 0:
t = n # 一定要定义一个t = n。如果不定义t,下面进入n //= middle这行代码的话,n会修改
for middle in range(start,int(n * 0.5) + 2):
if t % middle != 0:# 不能构成连乘了,直接break
break
t //= middle
seq.append(middle)
if len(res) < len(seq):# 比较连续因子数,如果seq的连续因子数更大,则更新res
res = seq
if len(res) == 0:# res为空,则n为质数,没有因数
print(1)
print(n)
else:
print(len(res))
print(res[0],end = '')
for i in range(1,len(res)):
print(f'*{res[i]}',end = '')