因数分解なんて
#include <stdio.h>
int main(void)
{
int i, j, n;

scanf("%d", &n);

for(i=2; n>=i; i++) {
for(j=0; n%i==0; j++) n /= i;
if(j) printf("%d^%d\n", i, j);
}

return 0;
}

程度で十分だろ