ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj)1676 - 팩토리얼 0의 개수
    PS/boj 2020. 9. 15. 21:13
    package soup.algorithms.boj;
    
    import java.util.Scanner;
    
    public class boj_1676 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            int ans = 0;
    
            for (int i = 5; i <= n; i*=5) {
                ans += n/i;
            }
    
            System.out.println(ans);
        }
    }
    

     

    - N 의 범위가 500까지인데 500! 구하는건 오래걸리고 수가 너무 크다 -> 다른 방법 생각

    - 0이 뒤에 몇개가 오는가 ? -> 0이 될려면 소수 2 * 5가 되어야하고 결국 2 * 5가 몇 번 등장하는가 ?를 묻는것

    - 어떤 수를 소인수분해 했을경우 2보다는 무조건 5가 적을수 밖에 없고 그렇다면 5의 등장 횟수를 찾아야한다.

    - 1 ~ N의 수를 소인수 분해햇을경우 5의 등장횟수는 5를 나눈 몫과 같다.

    - 그런데 25의 경우에는 5가 2번 등장, 125의 경우에는 5가 3번 등장 -> for문에서 증가값에 i *= 5를 줘서 추가로 카운팅해준다.

     

     

     

    'PS > boj' 카테고리의 다른 글

    boj)17087 - 숨바꼭질 6  (0) 2020.09.15
    boj)9613 - GCD 합  (0) 2020.09.15
    boj)6588 - 골드바흐의 추측  (0) 2020.09.15
    boj)1929 - 소수 구하기  (0) 2020.09.15
    boj)17299 - 오등큰수  (0) 2020.09.15
킹수빈닷컴