728x90
문제는 더보기!
더보기
팩토리얼 0의 개수
시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 | 128 MB | 34303 | 16221 | 13483 | 47.885% |
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력
첫째 줄에 구한 0의 개수를 출력한다.
예제 입력 1 복사
10
예제 출력 1 복사
2
예제 입력 2 복사
3
예제 출력 2 복사
0
팩토리얼 리스트를 500까지 만든 후에 문자열로 변환해서 0을 검출해내는 코드로 작성했다.
t = int(input())
fac =[1]
for i in range(1,501):
fac.append(fac[-1] * i)
count = 0
for i in reversed(str(fac[t])):
if i == '0':
count +=1
else:
break
print(count)
이렇게 해도 통과되긴 했는데 뭔가 효율적인 방법이 있을 것 같아 더 조사해 보니 역시 있었다!
n에서 5로 나누어떨어지는게 몇개인지 구한다
25같은경우는 5로 나누어지는게 2개기 때문에 이런경우만 더해주면 된다.
n = int(input())
def five_count(n):
cnt = 0
while n != 0:
n //= 5
cnt += n
return cnt
print(five_count(n))
728x90
'Python > 백준' 카테고리의 다른 글
10828_스택 (0) | 2022.01.31 |
---|---|
2004_조합 0의개수 (0) | 2022.01.30 |
9375_패션왕신해빈 (0) | 2022.01.28 |
1010_다리놓기 (0) | 2022.01.27 |
11050_이항계수 (0) | 2022.01.25 |