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

유클리드 호제법 c언어 구현하기

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

<개념>

두 정수의 최대 공약수를 구하는 알고리즘

<방법>

  1.  두 수 중에서 큰 수를 a, 작은 수를 b라고 하고 a를 b로 나눈다.
  2. a가 b로 나누어떨어지면 두 수의 최대공약수는 b이다.
  3. a가 b로 나누어떨어지지 않으면 a를 b로 나눈 나머지와 b에 대하여 1번부터 다시 반복한다.
#include <stdio.h>

int	Euclidean(int a, int b)
{
	if (b == 0)
		return (a);
	else
		return (Euclidean(b, a%b));
}

int	main()
{
	int	a = 10;
	int	b = 4;

	printf("%d", Euclidean(10, 4));
	return (0);
}

10과 4 의 최대 공약수 = 2 가 출력된다.

 

<최소공배수구하는 방법>

 

위의 방법으로 최대 공약수를 구하면 

 

최소공배수 = (a * b) / 최대공약수 

728x90

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

백준 1427 소트인사이드 c언어  (0) 2023.02.03
백준 1934 최소공배수 c언어  (0) 2023.01.29
qsort함수  (0) 2023.01.28
백준 1037 약수 c언어  (0) 2023.01.28
백준 5086 c언어  (0) 2023.01.27

댓글