蒜头君有一个数,请你输出其素因子分解表达式。
输入格式 输入一个整数 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;
}