백준/기타
[백준/Java] 1676번: 팩토리얼 0의 개수
KimNang
2023. 5. 23. 13:32
문제 정보
제목 : 팩토리얼 0의 개수
번호 : 1676번
사용 언어 : Java
문제 링크
https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
시간 제한 | 메모리 제한 |
2 초 | 128 MB |
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력
첫째 줄에 구한 0의 개수를 출력한다.
입출력 예제

나의 풀이
소인수분해를 통해 N!의 2 * 5 개수를 구해야하는 문제입니다. 연속된 수를 곱하는 거면 2는 5의 개수보다 많을 것이므로 N에서 5를 나누면서 count변수를 합해주었습니다. 반복이 끝나면 count를 출력합니다.
코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
int count = 0;
while(N>=5) {
count += N / 5;
N /=5;
}
bw.write(count+"\n");
bw.flush();
bw.close();
br.close();
}
}