강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

후위이님의 프로필 이미지
후위이

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

27. N!의 표현법(소인수 분해 응용)

팩토리얼을 보고 습관적으로 재귀형태로 만들었는데 상관 없을까요?

해결된 질문

작성

·

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;
}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^ 

네. 상관없습니다. 영상에서 하는 방법과 동일한 코드나 다름없습니다.

후위이님의 프로필 이미지
후위이

작성한 질문수

질문하기