나의정답.
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;
struct Prime
{
int value;
int cnt=0;
};
int main(int argc, char** argv) {
//freopen("input.txt", "rt", stdin);
int n, i, cnt = 0, temp;
bool isPrime = true;
Prime *prime = new Prime[1000];
scanf("%d", &n);
printf("%d! = ", n);
for(i = 2; i <= n; i++){
isPrime = true;
for(int j = 2 ; j < i; j++)
{
if(i % j == 0){
isPrime = false;
break;
}
}
if(isPrime){
prime[cnt].value = i;
prime[cnt++].cnt++;
}
else{
temp = i;
for(int j = 0 ; j < cnt; j++){
while(temp % prime[j].value == 0){
temp /= prime[j].value;
prime[j].cnt++;
}
}
}
}
for(i = 0 ; i < cnt; i++){
printf("%d ", prime[i].cnt);
}
delete[] prime;
}