티스토리 뷰

  • N!의 표현법
#include <iostream>
#include <vector>
#include <algorithm>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
	//freopen("input.txt", "rt", stdin);
	int n, i, j, tmp;
	scanf("%d", &n);
	std::vector <int> a(n+1);
	for(i=2; i<=n; i++){
		tmp=i;
		j=2;
		while(1){
			if(tmp%j==0){
				a[j]++;
				tmp=tmp/j;
			}
			else {
				j++;
			}
			if(tmp==1) break;
		}
	}
	printf("%d! = ", n);
	for(i=2; i<=n; i++){
		if(a[i]!=0) printf("%d ", a[i]);
	}
	return 0;
}

 

  • N!에서 0의 개수
#include <iostream>
#include <vector>
#include <algorithm>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
	//freopen("input.txt", "rt", stdin);
	int n, i, j, tmp=1, cnt1=0, cnt2=0;
	scanf("%d", &n);
	for(i=2; i<=n; i++){
		tmp=i;
		j=2;
		while(1){
			if(tmp%j==0){
				if(j==2) cnt1++;
				if(j==5) cnt2++;
				tmp=tmp/j;
			}
			else j++;
			if(tmp==1) break;
		}
	}
	if(cnt1<cnt2) printf("%d", cnt1);
	if(cnt1>cnt2) printf("%d", cnt2);
}

'algorithm' 카테고리의 다른 글

[c++] 탄화수소 질량, 선택정렬  (0) 2020.12.13
[c++] 3의 개수구하기(large)  (0) 2020.12.11
[c++] 석차 구하기  (0) 2020.12.08
[c++] 연속부분증가수열, Jolly jumpers  (0) 2020.12.07
[c++] 카드게임, 온도의 최대값  (0) 2020.12.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함