본문 바로가기
backjoon/여러가지

백준 1934 최소공배수 c언어

by 정구지개발자 2023. 1. 29.
728x90

https://www.acmicpc.net/problem/1934

 

1934번: 최소공배수

두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있

www.acmicpc.net

1. 최소공배수를 구할때 유클리드 호제법을 이용해서 최대공약수를 우선 구해준다.

2. 최소공배수는 숫자1 * 숫자2 를 한값에 최대공약수를 나누어주면 최소공배수가 되는걸 이용해 해결한다.

 

<나의 코드>

#include <stdio.h>

int	Euclidean(int A, int B)
{
	int	temp;

	if (A < B)
	{
		temp = A;
		A = B;
		B = temp;
	}
	if (B == 0)
		return (A);
	return (Euclidean(B, A%B));
}

int	main()
{
	int	T, i;
	int	A, B, C;

	scanf("%d", &T);
	i = 0;
	while (i < T)
	{
		scanf("%d %d", &A, &B);
		C = A * B;
		printf("%d\n", C / Euclidean(A, B));
		i++;
	}
	return (0);
}

<개선점 or 비판점>

1. main문에서  while문을  i를 사용하지 않고 

   while (T--) 로 사용해서 코드를 더 줄일수 있을것이라 생각이 든다.

728x90

'backjoon > 여러가지' 카테고리의 다른 글

백준 1427 소트인사이드 c언어  (0) 2023.02.03
유클리드 호제법 c언어 구현하기  (0) 2023.01.29
qsort함수  (0) 2023.01.28
백준 1037 약수 c언어  (0) 2023.01.28
백준 5086 c언어  (0) 2023.01.27

댓글