-
수학_백준_팩토리얼 0의 개수_1676Algorithm 2018. 8. 21. 01:34
N! = 1 x 2 x 3 x - - - x N
팩토리얼 값은 매우크다
10! = 3628800 으로 우리가 보통 문제에서 풀 수있는 최대 값이다.
이 문제는 실제로 팩토리얼 값을 구할 수 없다. 데이터의 범위를 초과하기 때문이다. 여기서 알아야 할것은 0의 개수이지 값이 아니다. 즉 N을 소인수 분해 했을 떄, 2와 5의 개수를 세어주면 된다.
1234567891011121314151617181920212223242526272829#include <iostream>using namespace std;int main() {int input, value;int twoCount = 0, fiveCount = 0;cin >> value;while (value > 1) {input = value--;while ((input % 2 == 0) || (input % 5 == 0)) {if (input % 2 == 0) {input /= 2;twoCount++;}else if (input % 5 == 0) {input /= 5;fiveCount++;}}}if (twoCount > fiveCount) {cout << fiveCount << endl;}else {cout << twoCount << endl;}}cs 'Algorithm' 카테고리의 다른 글
정렬_백준 (0) 2018.08.21 수학_백준_조합 0의 개수_2004 (0) 2018.08.21 수학_백준_소수_골드바흐의 추측_6588 (0) 2018.08.21 수학_백준_소수_에라토스테네스의 체 (0) 2018.08.21 수학_백준_소수 (0) 2018.08.21