문제
접근방식
뒤에 0이 나올려면 10의 배수여야 하고 10=2*5 이므로 N!의 값이 2를 약수로 가지는 횟수와 5를 약수로 가는지 횟수 중에 최소값을 구하면 된다.
2를 약수로 가지는 횟수보다 5를 약수로 가지는 횟수가 작으므로 N!이 5를 약수로 가지는 횟수를 구하면 된다.
코드
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
32
33
34
35
36
37
38
39
package acmicpc;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class acmicpc1676 {
public static void main(String[] agrs) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(reader.readLine());
int cnt = 0;
for(int i=1; i<=n; i++) {
int a = i;
while(true) {
int remain = a%5;
if(remain > 0) {
break;
} else {
a = a/5;
cnt++;
}
}
}
writer.append(String.valueOf(cnt));
writer.flush();
writer.close();
} catch (Exception e) {
}
}
}