반응형
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;
int main() {
	int i, j, n, tmp;
	scanf("%d",&n);
	vector<int> ch(n+1);	
	
	for(int i=2; i <=n ; i++){
		int tmp = i;
		int mod = 2;
		while(tmp!=1){
			if(tmp%mod==0){
				tmp/=mod;
				ch[mod]++;
			}
			else{
				mod++;
			}
		}
	}
	printf("%d! = ",n);
	for(int i =1; i <=n; i++){
		if(ch[i]>0){
			printf("%d ",ch[i]);
		}
	}
	
	
	return 0;
}

 

N!을 소인수 분해해서 표현

 

소인수분해는 2부터 n까지 나눠질 때까지 계속 돌면

 

편하게 할 수 있다.

반응형

'Algorithm > etc' 카테고리의 다른 글

3의 개수  (0) 2021.12.27
N! 0의 개수  (0) 2021.12.27
숫자 뒤집기 cpp  (0) 2021.12.25
약수의 개수 구하기  (0) 2021.12.24
자리수의 합  (0) 2021.12.23

+ Recent posts