ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

1676๋ฒˆ: ํŒฉํ† ๋ฆฌ์–ผ 0์˜ ๊ฐœ์ˆ˜

N!์—์„œ ๋’ค์—์„œ๋ถ€ํ„ฐ ์ฒ˜์Œ 0์ด ์•„๋‹Œ ์ˆซ์ž๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ 0์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ํŒฉํ† ๋ฆฌ์–ผ๋กœ ๊ณ„์‚ฐ๋œ ๊ฐ’์—์„œ ๋’ค์—์„œ ๋ถ€ํ„ฐ 0์ด ์•„๋‹Œ ์ตœ์ดˆ์˜ ๋‹ค๋ฅธ ์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 10!์€ 3628800์ด๋ฏ€๋กœ ๋’ค์—์„œ 0์ด ์•„๋‹Œ ์ˆ˜๋Š” 2๋ฒˆ์งธ ์ดํ›„์— ๋“ฑ์žฅํ•œ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ฐ’์ด ์ž…๋ ฅ๋˜๋ฉด ์ด์— ๋Œ€ํ•œ ํŒฉํ† ๋ฆฌ์–ผ์„ ๊ณ„์‚ฐํ•˜๊ณ , ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋’ค์ง‘์€ ํ›„์— 0์ด ๋‚˜์˜ค์ง€ ์•Š์„ ๋•Œ๊นŒ์ง€ ์นด์šดํŠธํ•˜์˜€๋‹ค.

 

์ฝ”๋“œ

import math

if __name__ == '__main__':
    f = str(math.factorial(int(input())))
    cnt = 0
    for num in f[::-1]:
        if num != '0':
            break
        else:
            cnt += 1
    print(cnt)

  ์ง์ ‘ ํŒฉํ† ๋ฆฌ์–ผ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ง๊ณ ๋„, ๋’ท์ž๋ฆฌ๊ฐ€ 0์ด ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ–ˆ์„ ๋•Œ 5, 25, 125์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋ฉด ๋’ท์ž๋ฆฌ๊ฐ€ 0์ด ๋˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

if __name__ == '__main__':
    n = int(input())
    cnt = (n // 5 ** 3) + (n // 5 ** 2) + (n // 5)
    print(cnt)

 ์œ„์˜ ๋ฐฉ๋ฒ•๊ณผ ์ฐจ์ด๋Š” 4ms ๋ฐ–์— ๋‚˜์ง€ ์•Š๋Š”๋‹ค. ์ง๊ด€์ ์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์— ๋น„ํ•ด 0์ด ๋˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ดํ•ดํ•˜์—ฌ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‰ฌ์šด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€