반응형

📖 문제

 

📋 코드

import java.util.*;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int N = sc.nextInt();
		int cnt2 = 0;
		int cnt5 = 0;

		for (int i = 1; i <= N; i++) {
			int tmp = i;
			while (tmp % 2 == 0) {
				tmp /= 2;
				cnt2++;
			}
			while (tmp % 5 == 0) {
				tmp /= 5;
				cnt5++;
			}
		}

		System.out.println(Math.min(cnt2, cnt5));
	}
}

👨🏻‍💻 결과

 

 

📕 풀이 방법

10이 만들어지기 위해서는 2와 5가 필요하므로 N! 의 2와 5의 개수를 구하면 0의 개수를 구할 수 있습니다.

 

🔗 링크

https://www.acmicpc.net/problem/1676

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

반응형

+ Recent posts