#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
등료하는길에 갑자기 생각나서 짜봄 ㅁㅌㅊ?
ㅆㅎㅌㅊ
왜 마크닉달고 자바안하냐????????
마크 윈10에디션은 C++로 짜여졌답니다
저기에 697489258447785 박는순간 버퍼오버플로우 ㄱㅇㄷ - 관악구 서원동 사는 한솔근 010--2975--7971
난 컴퓨터 감수성 풍부해서 그런일 안시킴 ㅋㅋ
아 어차피 익셉션 나겠군 - 관악구 서원동 사는 한솔근 010--2975--7971