A26677. 因子分解
填空题
困难
知识点
题目描述
因子分解
题目描述
输入一个数,输出其素因子分解表达式。
输入
输入一个整数 n (2≤n<100)。
输出
输出该整数的因子分解表达式。
表达式中各个素数从小到大排列。
如果该整数可以分解出因子a的b次方,当b大于1时,写做 a^b ;当b等于1时,则直接写成a。
输入样例
60输出样例
2^2*3*5参考答案
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, p[105] = {}, i = 2;//p[i]:因数i出现的个数
bool isFirst = true;
cin >> n;
while(n > 1)
{
if(n % i == 0)
{
p[i]++;
n /= i;
}
else
i++;
}
for(int i = 2; i <= 100; ++i)
{
if(p[i] > 0)
{
if(isFirst)
isFirst = false;
else
cout << '*';
cout << i;
if(p[i] > 1)
cout << '^' << p[i];
}
}
return 0;
}
上一题
下一题