๋ฐฑ์ค 13241 ์ต์ ๊ณต๋ฐฐ์ With JAVA
https://www.acmicpc.net/problem/13241
13241๋ฒ: ์ต์๊ณต๋ฐฐ์
์ ์ B์ 0๋ณด๋ค ํฐ ์ ์์ธ N์ ๊ณฑํด ์ ์ A๋ฅผ ๋ง๋ค ์ ์๋ค๋ฉด, A๋ B์ ๋ฐฐ์์ด๋ค. ์: 10์ 5์ ๋ฐฐ์์ด๋ค (5*2 = 10) 10์ 10์ ๋ฐฐ์์ด๋ค(10*1 = 10) 6์ 1์ ๋ฐฐ์์ด๋ค(1*6 = 6) 20์ 1, 2, 4,5,10,20์ ๋ฐฐ์์ด๋ค. ๋ค
www.acmicpc.net
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main_S3_13241 { static long n; static long m; static long result; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); n = Long.parseLong(st.nextToken()); m = Long.parseLong(st.nextToken()); System.out.println(lcm(n, m)); } // ์ต๋ ๊ณต์ฝ์ public static long gcd(long a, long b) { while (b > 0) { long temp = a; a = b; b = temp % b; } return a; } // ์ต์ ๊ณต๋ฐฐ์ => (a * b) / a์ b์ ์ต๋ ๊ณต์ฝ์ public static long lcm(long a, long b) { return (a * b) / gcd(a, b); } } | cs |
๋จผ์ ๋ฒํผ๋ฆฌ๋์ ํ ํฌ๋์ด์ ํ๋๋ฅผ ๋ง๋ค์ด ์ค๋ค. ๊ทธ ๋ค์ ์ฒซ ๋ฒ์งธ์ n๊ณผ ๋ ๋ฒ์งธ ์ m์ ๋ง๋ค์ด ์ฃผ๊ณ lcm ํจ์๋ฅผ ํธ์ถํด ์ค๋ค lcm ํจ์๋ ์ต์๊ณต๋ฐฐ์๋ฅผ ์๋ ค์ฃผ๋ ํจ์์ด๋ค. ์ด ํจ์๋ฅผ ์์๋ณด๊ธฐ ์ ์ ๋จผ์ ์ต๋ ๊ณต์ฝ์๋ฅผ ๋ง๋๋ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณ ํด์ฃผ์ด์ผ ํ๋ค. ์๋๋ฉด ์ต์ ๊ณต๋ฐฐ์๋ฅผ ์๋ ค๋ฉด ์ต๋ ๊ณต์ฝ์๋ฅผ ์๋ ๊ฒ์ด ๋จผ์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์ต๋ ๊ณต์ฝ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ํด๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค. ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ฉด ๋ ์์ ์ต๋ ๊ณต์ฝ์๋ฅผ ์ ์ ์๋ค. ๊ทธ ๋ค์ ์ต์ ๊ณต๋ฐฐ์์ ์ฑ์ง์ ์ต์ ๊ณต๋ฐฐ์๋ ๋ ์์ ๊ณฑ์ ์ต๋ ๊ณต์ฝ์๋ก ๋๋ ๊ฐ์ผ๋ก ๊ณ์ฐ๋๋ค๋ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด a = 12, b = 18์ธ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์. ์ด ๊ฒฝ์ฐ gcd ๊ฐ : ์ต๋ ๊ณต์ฝ์๋ 6์ด๋ค. 12 * 18 / 6 (์ต๋๊ณต์ฝ์) ๋ฅผ ํ๋ฉด ์ต์ ๊ณต๋ฐฐ์๋ 36์ด ๋๋ค. ์ด๋ ๊ฒ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ ๊ฒ์ด๋ค. ์ด ์ฑ์ง์ ์ด์ฉํ์ฌ ์ฝ๋๋ฅผ ๊ตฌํํ๋ฉด ์์ ๊ฐ๋ค.