Algorithm/etc

N! 표현법

DingCoDing 2021. 12. 27. 16:24
반응형
#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까지 나눠질 때까지 계속 돌면

 

편하게 할 수 있다.

반응형