백준 1676 - 팩토리얼 0의 개수 [Rust]

[Silver V] 팩토리얼 0의 개수 - 1676

Posted by Hebi on October 29, 2023

백준 알고리즘

[Silver V] 팩토리얼 0의 개수 - 1676

문제 링크

성능 요약

메모리: 13156 KB, 시간: 4 ms

분류

수학

문제 설명

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)

출력

첫째 줄에 구한 0의 개수를 출력한다.

음악 들으면서 같이 공부해요

Video Label

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use std::io::{BufReader,BufRead,BufWriter,Write,stdin,stdout};
fn main(){
 
    let mut reader= BufReader::new(stdin().lock());
    let mut writer=BufWriter::new(stdout().lock());
    let mut input= String::new();
     reader.read_line(&mut input).unwrap();
      //10!= 10 9 8 7 6 5 4 3 2 1= 3628800;
      //10 100 1000같은 10의 거듭제곱
      //0의 개수를 출력하기 위해서는 2*5가 몇개인지 확인
     let n= input.trim().parse::<i64>().unwrap();
     let mul5 = n / 5; //5는 5가 1개이므로 0
     let mul25 = n / 25;//25는 5가 2개이므로 00
     let mul125 = n / 125;//125는 5개 세개이므로 000
     let result = mul5 + mul25 + mul125;
    writeln!(writer,"{}",result).unwrap();
    writer.flush().unwrap();
}