为什么我输入28只能输出2:2
给定一个整数n,请给出它的质因数分解。
如28可以如下分解:28=2^2×7
请你输出的每个质因数以及该质因数的指数。
输入格式
一行,包含一个整数n(2≤n≤10000)。
输出格式
若干行,每行输出整数n的一个质因数,以及该质因数的指数,之间用一个冒号:隔开,且按质因数从小到大的顺序输出。
输入样例
28
输出样例
2:2
7:1
特殊提示
输入2:
2
输出2:
2:1
#include <stdio.h>
#include <math.h>
int main()
{
int n, i, A, k, B, C = 0, D = 0, g, j, p;
scanf("%d", &n);
for (i = 2; i <= n - 1; i++)
{
if (n % i != 0)
continue;
for (k = 1; k <= i; k++)
{
if (i % k != 0)
C = 1 + C;
}
A = i;
for (j = 1; j < n; j++)
{
p = pow(A, j);
if (n % p == 0)
D = D + 1;
continue;
}
if (C == i - 2)
printf("%d%c%d\n", A, ':', D);
}
return 0;
}