728x90
[백준] 300 - 수학 1 : 팩토리얼 0의 개수 (1676번 JAVA)
[접근방법]
* n! 에서 뒤에서 부터 연속으로 나오는 0의 개수는 "10을 인수로 갖는 개수" 와 같다.
따라서, 10을 인수로 몇개나 갖는가 를 구할 것이다.
이때, .n!의 소인수 중 2의 개수 > 5의 개수 이므로, 5의 개수 = 10의 개수 라고 할 수 있다.
따라서, n! 가 소인수 5를 몇개 같는가 가 질문의 정답이다.
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));
/*
* n! 에 10이 몇번 곱해 지는가
*/
int n = Integer.parseInt(br.readLine());
int count = 0; // 5의 개수
for(int i=1; i<=n; i++){
int val = i;
while (val % 5 == 0){
count ++;
val = val / 5;
}
}
bw.write(count+"\n");
bw.flush();
bw.close();
}
}
728x90
'백준 > 코드 플러스 (알고리즘 기초 - 1)' 카테고리의 다른 글
[백준] 300 - 수학 1 : 숨바꼭질 6 (!) (17087번 JAVA) (0) | 2023.01.09 |
---|---|
[백준] 300 - 수학 1 : 조합 0의 개수 (!) (2004번 JAVA) (0) | 2023.01.08 |
[백준] 300 - 수학 1 : 골드바흐의 추측 (6588번 JAVA) (0) | 2023.01.07 |
[백준] 300 - 수학 1 : 최대공약수와 최소공배수 (2609번 JAVA) (0) | 2023.01.07 |
[백준] 203 - 자료구조 1 (참고) : ROT13 (11655번 JAVA) (0) | 2023.01.07 |