Faktorial
Batas waktu : 1 detik
Batas memori : 32MB
N!, yaitu N faktorial, didefinisikan sebagai N x (N-1) x (N-2) x ... x 1.
Pak Dengklek memberikan Anda sebuah bilangan bulat N (1 ? N ? 10.000). Hitunglah jumlah 0 berurutan yang mengakhiri N!. Misalnya, 10! = 3.628.800, maka jumlah 0 berurutan adalah 2. 8! = 40.320, maka jumlah 0 berurutan adalah 1 (nol di tengah tidak dihitung).
Format Masukan
Baris pertama berisi sebuah bilangan bulat N.
Format Keluaran
Sebuah baris berisi sebuah bilangan bulat yaitu jawaban yang dimaksud.
Contoh Masukan 1
10
Contoh Keluaran 1
2
Contoh Masukan 2
8
Contoh Keluaran 2
1
Hello world!
Untuk menciptakan 0 di digit akhir di perlukan bilangan 10. Faktor dari 10 itu 2 dan 5, jadi kita cukup mencari 5 saja.
C++
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int N;
cin >> N;
int zeroCount = 0, divider = 5;
while(N >= divider)
{
zeroCount += (N/divider);
divider *= 5;
}
cout << zeroCount << "\n";
return 0;
}
Java (ZeroCountInFactorial.java)
import java.util.Scanner;
public class ZeroCountInFactorial {
public static void main(String []args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int zeroCount = 0, divider = 5;
while(N >= divider)
{
zeroCount += (N/divider);
divider *= 5;
}
System.out.println(zeroCount);
}
}
var i, count : integer; N : longint; A : array[1..10000] of longint; BEGIN readln(N); count := 0; i := 2; A[1] := 5; repeat A[i] := A[i-1] * 5; count := count + (N div A[i-1]); inc(i); until (N < A[i-1]); writeln(count); END.
Masuk untuk menulis jawaban
Jumlah 0 berurutan di akhir N! dapat dinyatakan dengan rumus:
var
n:integer;
begin
writeln(n);
readln(n);
case (n) of
0..9:writeln('1');
10..99:writeln('2');
end;
readln;
end.