AOJ0052 Factorial II
問題リンク Factorial II
- 解法
N! (N<=2*10^9)の演算結果の末尾に0がいくつ並ぶかを求める問題です。
N!を素因数分解したときに10が何回出てくるか(2と5のペアの数)を求めると言いかえられます。
2の数と5の数のうち小さい方が10の登場回数になります。
登場回数は必ず5の方が小さいので、即ち5の登場回数がこの問題の答えです。
「階乗 0の個数」とかで検索かけると色々な解説サイトがあったりします。
- ソース
import java.util.Scanner; //Factorial II public class AOJ0052 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true){ int n = sc.nextInt(); if(n==0)break; int c = 0; while(n>=5){ c += n/5; n/=5; } System.out.println(c); } } }