본문 바로가기

코딩테스트/Python

[Python] 백준 #3474 - 교수가 된 현우

문제


https://www.acmicpc.net/problem/3474

 

3474번: 교수가 된 현우

첫째 줄에 테스트 케이스의 개수 T가 주어지고, 이어서 T개의 줄에 정수 N이 주어진다(1 <= N <= 1000000000).

www.acmicpc.net

 

 

 

풀이


import sys
input = sys.stdin.readline

n = int(input())
for _ in range(n):
    x = int(input())
    cnt=0
    i=5
    while i<=x: # 5가 몇개가 들어가는지 구해준다.
        cnt+=x//i
        i*=5
    print(cnt)

 

0의 개수를 구하려면 숫자에 10이 곱해진 횟수를 구해줘야한다.

 

예 ) 100 = 10**2

 

10을 소인수 분해 하면 2*5이다.

즉, 숫자를 소인수 분해하여 (2*5) 가 몇개 있는지 구하면된다.

 

5가 2보다 크기 때문에 5가 몇개 들어있는지 구하면된다.

 

 

 

 

'코딩테스트 > Python' 카테고리의 다른 글

[Python] 백준 #14620 - 꽃길  (0) 2022.05.16
[Python] 백준 #2910 - 빈도 정렬  (0) 2022.05.16
[Python] 백준 #17298 - 오큰수  (0) 2022.05.16
[Python] 백준 #2636 - 치즈  (0) 2022.05.15
[Python] 백준 #14502 - 연구소  (0) 2022.05.15