본문 바로가기
책/프로그램의 기초 C언어(작성중)

최소공배수 구하기

by 3604 2023. 11. 19.
728x90

출처: https://happyprogram.tistory.com/24

1. 최소공배수 개념이해


최소공배수란?
두 수의 최소공배수는 두 수에 서로 공통으로 존재하는 배수 중 가장 작은 수를 뜻합니다.

최소공배수 찾기
두 가지 수 이상의 최소공배수를 찾는 방법 중 하나는, 가장 적은 수의 공통 배수가 나올 때까지 각 수의 배수를 모두 나열해보는 것입니다.


예제 1: [8]과 [10]의 최소공배수
[8]의 배수: [8, 16, 24, 32,40,48, 56, 64 ,72, 80]
[10]의 배수: [10, 20, 30, 40}, 50, 60, 70, 80, 90, 100]
[40}]과 [80]은 [8]과 [10]의 공배수입니다. 둘 중 가장 작은 수는 어떤 것인가요?
[40}]이 [8]과 [10]의 배수 중 가장 작은 수입니다.

미국 수학에서는 다음과 같이 표현합니다: lcm(8, 10)=40

예제 2: [3, 4,] [6]의 최소공배수
[3]의 배수: [3, 6, 9, 12}, 15, 18, 21, 24]
[4]의 배수: [4, 8, 12}, 16, 20, 24}, 28]
[6]의 배수: [6, 12}, 18, 24}, 30, 36]
[12}]가 [3, 4,] [6]의 최소공배수입니다.

미국 수학에서는 다음과 같이 표현합니다:lcm(3,4,6)=12

출처: https://ko.khanacademy.org/math/cc-sixth-grade-math/cc-6th-factors-and-multiples/cc-6th-lcm/a/least-common-multiple-review

 

2. 코딩

두 정수를 입력받아 최소공배수를 구하는 프로그램을 작성하시오.

 

 

코드)

 
#include <stdio.h>
 
int main(){
 
int num1, num2, lcm, i;
 
 
 
printf("두 정수를 입력하시오:");
 
scanf("%d %d", &num1, &num2);
 
 
 
for(i=num1*num2; i>=1; i--){ //두 정수의 가장 큰 공배수 만큼 i를 증가
 
if(i%num1==0 && i%num2==0) lcm=i; //두 정수의 공배수를 lcm에 입력
 
}
 
printf("최소공배수: %d\t", lcm); //최종 적으로 가장 작은 공배수가 출력
 
return 0;
 
}

 

 

 

출처: https://happyprogram.tistory.com/24 [미라클 코딩:티스토리]

 

[참고]

심화:  정수론 > 최소공배수

출처: https://namu.wiki/w/%EC%B5%9C%EC%86%8C%EA%B3%B5%EB%B0%B0%EC%88%98

 

  •  

 

 

728x90

' > 프로그램의 기초 C언어(작성중)' 카테고리의 다른 글

델파이  (0) 2023.03.15
C C++ JAVA  (0) 2023.03.15