C#

백준 C# 1934 문제 풀이

psb08 2024. 10. 29. 08:42
728x90

문제 링크 : https://www.acmicpc.net/problem/1934

목차

1. 설명

 

2. 내 코드

 

3. 문제 풀이 해석 내용

 

4. 실행 결과

 

설명

백준 브론즈 1 문제 입니다.

문제명 : 최소공배수

 

내 코드

int num = int.Parse(Console.ReadLine());

while (num > 0)
{
    string a = Console.ReadLine();
    string[] b = a.Split();

    int A = int.Parse(b[0]);
    int B = int.Parse(b[1]);

    int index = 1;
    int n = 0;

    if (A < B) n = A;
    else n = B;

    for (int i = 1; i <= n; i++)
    {
        if ((A % i == 0) && (B % i == 0))
        {
            index = i;
        }
    }

    Console.WriteLine(index * (A / index) * (B / index));
    num--;
}

 

문제 풀이 해석 내용

 

입력 처리

int num = int.Parse(Console.ReadLine());

사용자로부터 정수를 입력받아 num 변수에 저장합니다. 

이 값은 입력받을 쌍의 개수를 나타냅니다.

 

 

루프 시작

while (num > 0)
{

num이 0보다 큰 동안 루프를 반복합니다. 

각 반복에서는 한 쌍의 정수를 처리합니다.

 

 

정수 쌍 입력

string a = Console.ReadLine();
string[] b = a.Split();
int A = int.Parse(b[0]);
int B = int.Parse(b[1]);

사용자로부터 두 개의 정수를 입력받습니다.

그 다음, 이를 공백으로 구분하여 배열 b에 저장합니다.

각 정수를 A와 B에 저장합니다.

 

 

최대공약수 계산

int index = 1;
int n = 0;

if (A < B) n = A;
else n = B;

for (int i = 1; i <= n; i++)
{
    if ((A % i == 0) && (B % i == 0))
    {
        index = i;
    }
}

index 변수를 1로 초기화합니다. 

이 변수는 최대공약수(GCD)를 저장하는 역할을 합니다.
n은 두 수 중 작은 값을 저장합니다.
1부터 n까지 반복하면서, A와 B의 공약수를 찾습니다. 

두 수의 공약수 중 가장 큰 값을 index에 저장합니다.

 

 

최소공배수 계산 및 출력

Console.WriteLine(index * (A / index) * (B / index));

최소공배수(LCM)는 다음과 같이 계산할 수 있습니다:

 [ \text{LCM}(A, B) = \frac{A \times B}{\text{GCD}(A, B)} ]
여기서는 간단히 index (GCD)를 이용하여 LCM을 계산합니다. 

계산된 LCM을 출력합니다.

 

 

루프 카운트 감소

num--;

처리한 쌍의 개수를 줄여 루프를 계속 진행합니다.

 

 

실행 결과

 

 

728x90

'C#' 카테고리의 다른 글

백준 C# 1427 문제 풀이  (0) 2024.10.31
백준 C# 2741 문제 풀이  (0) 2024.10.30
백준 C# 24264 문제 풀이  (0) 2024.10.28
백준 C# 24263문제 풀이  (0) 2024.10.27
백준 C# 5073 문제 풀이  (0) 2024.10.26