N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
첫째 줄에 구한 0의 개수를 출력한다.
N!에서 0의 개수는 곧, N!에 곱해지는 10의 개수와 관련이 있습니다.
1부터 N까지의 수를 탐색하며 해당 수의 소수 중 2의 개수와 5의 개수를 카운트 합니다.
카운트가 끝난 이후 두 수중 더 적은 수의 개수가 곧 10의 개수와 같으므로 문제를 쉽게 해결할 수 있습니다.
import java.util.Scanner;
public class BJ1676 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int num2 = 0;
int num5 = 0;
int answer;
for(int i = 1; i<=number; i++){
int count2 = 0;
int mult = 2;
while(i % mult == 0){
mult *= 2;
count2++;
}
num2 += count2;
int count5 = 0;
mult = 5;
while(i % mult == 0) {
mult *= 5;
count5++;
}
num5 += count5;
}
if(num2 > num5)
answer = num5;
else
answer = num2;
System.out.println(answer);
}
}