输入n(1 <= n <= 1e9),有多组测试数据:
616
27
输出:
616 = 2^3 * 7 * 11
27 = 3^3
(注意输出空格,但行末不要有空格)
难度:for beginner*/
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int i, j, k, n, l, count;
while (scanf ("%d", &n) != EOF)
{
k = 1;
printf ("%d =", n);
if (n == 1 || n == 0)
printf (" %d/n", n);
else
{
for (i = 2; i <= n; i++)
{
count = 0;
l = 1;
for (j = 2; j * j <= i; j++)
{
if (!(i % j))
{
l = 0;
break;
}
}
if (l && !(n % i))
{
while (n && !(n % i))
{
n /= i;
count++;
}
if (count > 1)
{
if (k)
{
printf (" %d^%d", i, count);
k = 0;
}
else
printf (" * %d^%d", i, count);
}
else
{
if (k)
{
printf (" %d", i);
k = 0;
}
else
printf (" * %d", i);
}
}
}
printf ("/n");
}
}
system ("pause>nul");
return 0;
}