인프런 커뮤니티 질문&답변
팩토리얼을 보고 습관적으로 재귀형태로 만들었는데 상관 없을까요?
해결된 질문
작성
·
168
0
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
int func(vector<int> &v, int n){
int tmp=n;
if(n>1){
func(v, n-1);
//then divide n
int i=2;
while((i<=tmp)&&(tmp>1)){
if(tmp%i==0){
v[i]++;
tmp=tmp/i;
}else{
i+=1;
}
}
}
return 0;
}
int main(){
//freopen("input.txt","rt", stdin);
int n, i;
scanf("%d",&n);
vector<int> v(n+1);
func(v, n);
printf("%d! = ",n);
for(i=2; i<=n; i++){
if(v[i]!=0) printf("%d ", v[i]);
}
return 0;
}




