반응형

 

📖 문제

 

📋 코드

import java.util.*;

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

		long n = sc.nextInt();
		long m = sc.nextInt();
		long cnt2 = 0;
		long cnt5 = 0;
		
		for (long i = 2; i <= n; i*=2) cnt2 += n/i;
		for (long i = 2; i <= n-m; i*=2) cnt2 -= (n-m)/i;
		for (long i = 2; i <= m; i*=2) cnt2 -= m/i;
		
		for (long i = 5; i <= n; i*=5) cnt5 += n/i;
		for (long i = 5; i <= n-m; i*=5) cnt5 -= (n-m)/i;
		for (long i = 5; i <= m; i*=5) cnt5 -= m/i;

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

👨🏻‍💻 결과

 

 

 

🔗 링크

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

 

2004번: 조합 0의 개수

첫째 줄에 정수 $n$, $m$ ($0 \le m \le n \le 2,000,000,000$, $n \ne 0$)이 들어온다.

www.acmicpc.net

 

반응형

+ Recent posts