-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
해결됨
팩토리얼을 보고 습관적으로 재귀형태로 만들었는데 상관 없을까요?
20.08.12 18:11 작성 조회수 124
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;
}
답변을 작성해보세요.
0
답변 1