#include <stdio.h>
#include <vector>
using namespace std;
struct NodeType {
int p;
int pc;
//vector 向 量 元 素 类 型
// 质 因 数 出 现 次 数
};
void solve(int n, vector<NodeType>& v){
int ic = 0;
int i = 2;
NodeType e;
do
{
if (n % i == 0)
{
ic++;
n = n / i;
}
else
{
if (ic > 0)
{
e.p = i;
e.pc = ic;
v.push_back(e);
}
ic = 0;
i++;
}
} while (n > 1 || ic != 0);
}
void disp(vector<NodeType>& v) {
vector<NodeType>::iterator it = v.begin();
printf("%d %d", it->p, it->pc);
for (it++; it != v.end(); ++it)
printf(" %d %d", it->p, it->pc);
printf("\n");
}
int main() {
int n;
while (scanf("%d", &n) != EOF) {
vector<NodeType> v;
solve(n, v);
disp(v);
}
return 0;
}
质因数分解
最新推荐文章于 2022-09-16 21:01:37 发布