최대 공약수와 알고리즘의 최소 공배수

최근에 나는 몇 가지 간단한 C 언어 문제를 브러시하기 시작했다. 최대 공약수와 피사체의 최소 공배수를 달성하기 위해 찾는, 그가 수행하고있다,하지만 여전히 미숙 발견, 모두 내가 사용 나중에 검토를 위해, 아이디어를 쓰기로 결정 인상이있다.

 

작은 규모의 대형에서 가장 큰 수요, 모두, 최대 공약수의 조건을 충족하는 첫번째이기 때문에 우선 I는 다음, 직접 폭력, 하나 개의 시도 하나를 해결하는 방법을 생각

1 #INCLUDE <iostream>
 2 #INCLUDE <STDIO.H>
 3  사용  공간을 성병;
4  INT의 주 ()
 (5)  {
 도 6      의 INT m, N;
7      INT의 공통 = 1,000 ;
8      CIN >> m;
9      CIN >> N;
10      동안 ( 1 )
 11  {
 12      
(13)      의 경우 (m을 %의 공통 == 0 && N %의 공통 == 0 )
 14      {
 15          COUT << 공통;
(16)         휴식 ;
17      }
 18      
19      다른 {
 20          common-- ;
21      }
 22      
23 }     리턴  0 ;
24 }

물론, 이것은 가장 직접적인 방법의 이해 실제로 더 나은,하지만 숫자가 증가 할 때, 그 효율이 높은 명확하지 않다.

 

다음은 두 번째 방법은 "유클리드는"있다 :

  이 방법은 또한 두 수있는 크고 작은 나타내는, 우리는 첫 번째 두 숫자하는 맥스 최소을 이해해야한다.

  첫 번째 단계 : 최대 % 분 얻어진 결과, 우리는 그것을 저장하기위한 변수 TEMP 걸릴. 따라서 온도가 최대 %의 분 =;

  단계 2 : 값 최소 최대 할당이 최소가 상기 처리를 계속하고, 온도의 값이 할당 될 때까지 온도 = 0; 임시의 최대 공약수에 (즉, 원형 최대)

1 #INCLUDE <iostream> 
 2  사용  스페이스 성병;
3  INT의 주 ()
 -4-  {
 5      INT 온도 = 1 , 최대, 분;
6      CIN >> 최대;
7      CIN >> 분;
8      상태 (온도)이
 9      {
 10          온도가 최대의 % = 분;
(11)          최대 = 분;
12          분 = 온도;
13      }
 14      COUT << 최대;
15      반환  0 ;
16 }

지점 및 최대 공약수를 계산 최소 공배수, 최소 공배수의 최대 공약수를 획득 한 후 (최대 최소 *)과 동일하다 매우 단답형 / 온도된다.

추천

출처www.cnblogs.com/Truedragon/p/12213634.html