[백준][python] 1676번: 팩토리얼 0의 개수
1676번: 팩토리얼 0의 개수
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력 조건
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력 조건
첫째 줄에 구한 0의 개수를 출력한다.
첫 번째 시도 .
n = int(input())
count2 = 0
count5 = 0
for i in range(1,n+1):
a=2
b=5
while i // a:
if i%a==0:
count2 += 1
a *= 2
while i // b:
if i%b==0:
count5 +=1
b *= 5
print(min(count2,count5))
»intput
10
»output
2
success
🌝 Thinking
뒷자리에 0이 만들어지려면 곱하는 수의 인수에 2와 5가 몇개씩 들어 있는지를 찾아야한다.
그래서 반복구문을 이용하여 각각의 수에 인자가 몇개씩 들어 있는지를 구하여 그 중 작은 값을 출력하였다.
2가 8개 있어도 5가 2개뿐이라면 뒷자리에 0은 2개만 만들어 진다.
💡 깨달은 점.
- 수 안에 인수를 찾는 방법은 왠지 자주 사용되어질 수도 있을 듯하여 체화시켜야겠다.
- 다른 풀이에선 2의 인수가 5의 인수보다 월등히 많아서 5의 인수만 카운트하는 풀이도 있었다.
댓글남기기