#include <stdio.h> #include <stdlib.h> bool prime(int n, int *p) {     if(n == 2)         return 1;     for(int i = 0; p[i] * p[i] <= n; i++) {         if(!(n % p[i]))             return 0;     }     return 1; } int main() {     int n;     scanf("%d", &n);     if(n < 2) {         printf("%d", n);         return 0;     }     int *p = (int *)malloc(n * sizeof(int));     int cnt = 0;     for(int i = 2; i <= n; i++) {         if(prime(i, p))             p[cnt++] = i;     }     int *c = (int *)malloc(cnt * sizeof(int));     for(int i = 0; i < cnt; i++)         c[i] = 0;     while(n != 1) {         for(int i = 0; i < cnt; i++) {             if(!(n % p[i]))                 n /= p[i], c[i]++;         }     }     for(int i = 0; i < cnt; i++) {         if(c[i])             printf("%d^%d * ", p[i], c[i]);     }     printf("\b\b ");     free(p); free(c);     return 0; }

출력 예)

234

2^1 * 3^2 * 13^1

등료하는길에 갑자기 생각나서 짜봄 ㅁㅌㅊ?