[๋ฐฑ์ค/python] 2609๋ฒ : ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์
๋ฌธ์
๋ ๊ฐ์ ์์ฐ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ต๋ ๊ณต์ฝ์์ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ๋ ๊ฐ์ ์์ฐ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ๋์ 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()์ ์ต์๊ณต๋ฐฐ์๋ฅผ ์๋ฏธํ๋ค.
'๐์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [๋ฐฑ์ค/python] 1010๋ฒ : ๋ค๋ฆฌ ๋๊ธฐ (0) | 2021.03.28 |
|---|---|
| [๋ฐฑ์ค/python] 11050๋ฒ : ์ดํญ ๊ณ์ 1 (0) | 2021.03.28 |
| [๋ฐฑ์ค/python] 1037๋ฒ : ์ฝ์ (0) | 2021.03.18 |
| [๋ฐฑ์ค/python] 11399๋ฒ : ATM (0) | 2021.03.18 |
| [๋ฐฑ์ค/python] 9461๋ฒ : ํ๋๋ฐ ์์ด (0) | 2021.03.16 |



