蒜头君有一个数,请你输出其素因子分解表达式。

输入格式
输入一个整数 n (2 \le n \le 100)n(2≤n≤100)。

输出格式
输出该整数的因子分解表达式,表达式中各个素数从小到大排列。

如果该整数可以分解出因子 aa 的 bb 次方:当 bb 大于 11 时,写做a^b;当 bb 等于 11 时,则直接写成a。

输出时每行末尾的多余空格,不影响答案正确性

#include<bits/stdc++.h>

using namespace std;
int s[150];
void f(int x,int y)
{
    if(x==0||y>x)
        return;
    else
    {
        while(x%y==0)
        {
            x/=y;
            s[y]++;
        }
        f(x,y+1);
    }
}
int main()
{
    int n;
    cin>>n;
    f(n,2);
    bool flag=false;
    for(int i=2;i<=100;i++)
    {
        if(flag&&s[i])
            cout<<"*";
        if(s[i])
            flag=true;
        if(s[i]==1)
            cout<<i;
        else if(s[i]>1)
            cout<<i<<"^"<<s[i];
    }
    return 0;
}