[๋ฐฑ์ค€/python] 2609๋ฒˆ : ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜

2021. 3. 19. 10:09

๋ฌธ์ œ

๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ๋‘˜์€ 10,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฉฐ ์‚ฌ์ด์— ํ•œ ์นธ์˜ ๊ณต๋ฐฑ์ด ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ, ๋‘˜์งธ ์ค„์—๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋‘ ์ˆ˜์˜ ์ตœ์†Œ ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์ •๋‹ต

n, m = map(int, input().split())

div = 0
for i in range(1, int(n ** 0.5) + 1):
    if n % i == 0:
        if m % (n / i) == 0:
            div = n // i
            break
        elif m % i == 0:
            if div < i:
                div = i

mul = n
while mul % m != 0:
    mul += n

print(div)
print(mul)

div = 0
for i in range(1, int(n ** 0.5) + 1):
    if n % i == 0:
        if m % (n / i) == 0:
            div = n // i
            break
        elif m % i == 0:
            if div < i:
                div = i

์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๋‘ ์ˆ˜ n, m ์ค‘ ํ•˜๋‚˜ n์„ 1๋ถ€ํ„ฐ n์˜ ์ œ๊ณฑ๊ทผ๊นŒ์ง€ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ผ๋Š” ๋œป์€

n์ด i์™€ n/i๋ฅผ ์•ฝ์ˆ˜๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

์•ฝ์ˆ˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜์™€ ๊ฐ€์žฅ ํฐ ์ˆ˜๊ฐ€ ์ง์„ ์ด๋ฃจ๊ธฐ ๋•Œ๋ฌธ์— n/i๊ฐ€ ์•ฝ์ˆ˜ ์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๊ฐ€ ๋œ๋‹ค.

๋‚˜๋จธ์ง€ ์ˆ˜ m์„ n/i๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ผ๋ฉด m๋„ n/i๋ฅผ ์•ฝ์ˆ˜๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ

div์— n/i์˜ ๋ชซ์„ ์ €์žฅํ•œ๋‹ค. ์ด ๋•Œ ๊ฒฐ๊ณผ๋Š” ์ •์ˆ˜๋กœ ์ถœ๋ ฅ๋˜์–ด์•ผํ•˜๋ฏ€๋กœ n//i๋ฅผ ์ €์žฅํ•œ๋‹ค.

n/i๊ฐ€ ์ œ์ผ ํฐ ์ˆ˜ ์ด๋ฏ€๋กœ ๋” ์ด์ƒ ํฐ ๊ณต์•ฝ์ˆ˜๋Š” ์—†๊ธฐ ๋•Œ๋ฌธ์— break๋ฅผ ํ†ตํ•ด ๋ฐ˜๋ณต๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

mul = n
while mul % m != 0:
    mul += n

์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

์šฐ์„  mul์— ๋‘ ์ˆ˜ ์ค‘ ํ•˜๋‚˜ n์„ ๋„ฃ๋Š”๋‹ค.

mul์„ m์œผ๋กœ ๋‚˜๋ˆด์„ ๋•Œ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด๋ผ๋ฉด m์˜ ๋ฐฐ์ˆ˜๋ผ๋Š” ๋œป์ด๋ฏ€๋กœ

mul์„ m์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ 0์ด ๋  ๋•Œ๊นŒ์ง€ mul์— n์„ ๋”ํ•˜์—ฌ mul ๊ฐ’์„ n์˜ ๋ฐฐ์ˆ˜๋กœ ์œ ์ง€ํ•œ๋‹ค.

 

import math

a, b = map(int, input().split())
print(math.gcd(a, b))
print(math.lcm(a, b))

์‚ฌ์‹ค ๋‘ ๋ฐฉ๋ฒ• ์™ธ์— math ๋‚ด์žฅํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐ”๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

math.gcd()๋Š” ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๊ณ  math.lcm()์€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

BELATED ARTICLES

more