正整数分解为质因式,输出如下形式:如2=2,3=3,4=22,5=5,6=2×3,100=22×52
输入输出样例
输入:
100
输出:
100=2^2*5^2
说明:
n≤109
Time:1s
Memory:128M
#include <bits/stdc++.h>
using namespace std;
#define int long long
main()
{
int n;
cin >> n;
int fzlist[114514];
int len = 0;
int w = n;
while(n > 1)
{
for(int i = 2; i <= n; i++)
{
if(n % i == 0)
{
fzlist[len] = i;
len++;
n /= i;
break;
}
}
}
fzlist[len] = -1;
sort(fzlist, fzlist + len);
int tmp = fzlist[0], cnt = 1;
cout << w << '=';
for(int i = 0; i < len; i++)
{
if(fzlist[i] != fzlist[i + 1])
{
cout << tmp;
if(cnt != 0 && cnt != 1)
{
cout << '^' << cnt;
}
if(fzlist[i + 1] != -1) putchar('*');
tmp = fzlist[i + 1];
cnt = 1;
}
else
{
cnt++;
}
}
return 0;
}