[伯俊]1676号工場0の個数/Java、Python


Baekjoon Online Judge


algorithm practice


-問題を逐次解く


17.整数論及び組合せ論


整数論と組合せ論を学びましょう.
Java/Python

11.工場0の数量


1676号
素数分解の性質を利用してN!ゼロを求める末尾に何個のゼロがあるかという問題.

今回の質問はN!0を求める個数の問題は、後から0以外の数字が現れるまでです.
問題の観点から見ると、後ろにn個の0があるという意味は2と5がn対の形で存在することを意味する.
デフォルトでは、値は5の個数によって変化し、カウントは5のn乗で1ずつ増加します.これは単純な5を5で割るのではなく、繰り返し文5を5で割ることで加算されます.
  • Java
  • import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;
     
    public class Main {
     
    	public static void main(String[] args) throws IOException {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
     
    		int num = Integer.parseInt(br.readLine());
    		int cnt = 0;
     
    		while (num >= 5) {
    			cnt += num / 5;
    			num /= 5;
    		}
    		System.out.println(cnt);
    	}
     
    }
  • Python
  • import sys
    
    num = int(sys.stdin.readline())
    cnt = 0
     
    while (num >= 5):
    	cnt += num // 5
    	num //= 5;
    
    print(cnt)