문제 링크 : https://www.acmicpc.net/problem/13241
목차
1. 설명
2. 내 코드
3. 문제 풀이 해석 내용
4. 실행 결과
설명
백준 실버 5 문제 입니다.
문제명 : 최소공배수
내 코드
using System;
class Program
{
// 최대공약수 계산
static long GCD(long a, long b)
{
while (b != 0)
{
long temp = b;
b = a % b;
a = temp;
}
return a;
}
// 최소공배수 계산
static long LCM(long a, long b)
{
return (a / GCD(a, b)) * b;
}
static void Main()
{
string[] input = Console.ReadLine().Split();
long A = long.Parse(input[0]);
long B = long.Parse(input[1]);
long result = LCM(A, B);
Console.WriteLine(result);
}
}
문제 풀이 해석 내용
최대공약수 계산
static long GCD(long a, long b)
{
while (b != 0)
{
long temp = b;
b = a % b;
a = temp;
}
return a;
}
static long GCD(long a, long b): 두 개의 long 타입 정수를 인자로 받아 최대공약수를 계산하는 메서드입니다.
while (b != 0): b가 0이 아닐 때까지 반복합니다.
long temp = b;: b의 값을 temp에 저장합니다.
b = a % b;: a를 b로 나눈 나머지를 b에 저장합니다.
a = temp;: temp에 저장된 b의 값을 a에 저장합니다.
반복이 끝나면 a에 최대공약수의 값이 담겨 있으므로 이를 반환합니다.
최소공배수 계산
static long LCM(long a, long b)
{
return (a / GCD(a, b)) * b;
}
static long LCM(long a, long b): 두 개의 long 타입 정수를 인자로 받아 최소공배수를 계산하는 메서드입니다.
return (a / GCD(a, b)) * b;: 최소공배수는 두 수의 곱을 최대공약수로 나눈 값이므로,
a를 GCD로 나눈 후 b를 곱하여 결과를 반환합니다.
Main
static void Main()
{
string[] input = Console.ReadLine().Split();
long A = long.Parse(input[0]);
long B = long.Parse(input[1]);
long result = LCM(A, B);
Console.WriteLine(result);
}
static void Main(): C# 프로그램의 시작점인 Main 메서드입니다.
string[] input = Console.ReadLine().Split();: 사용자로부터 입력을 받고, 공백으로 나누어 문자열 배열에 저장합니다.
long A = long.Parse(input[0]);: 첫 번째 입력값을 long 타입으로 변환하여 A에 저장합니다.
long B = long.Parse(input[1]);: 두 번째 입력값을 long 타입으로 변환하여 B에 저장합니다.
long result = LCM(A, B);: A와 B의 최소공배수를 계산하여 result에 저장합니다.
Console.WriteLine(result);: 계산된 최소공배수 값을 콘솔에 출력합니다.
실행 결과
'C#' 카테고리의 다른 글
백준 C# 10845문제 풀이 (0) | 2024.11.18 |
---|---|
백준 C# 10828 문제 풀이 (0) | 2024.11.18 |
백준 C# 11650 문제 풀이 (0) | 2024.11.12 |
백준 C# 10989 문제 풀이 (0) | 2024.11.10 |
백준 C# 19532 문제 풀이 (3) | 2024.11.09 |