본문 바로가기

IT/알고리즘

최대 공약수 찾는 알고리즘(유클리드의 알고리즘(Euclid's algorithm))(개선)

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

저번에 포스팅한 최대 공약수 찾는 알고리즘은 큰 문제점이 하나 있습니다.



만약 50000과 1의 최대공약수를 구하기 위해서는 무려 50000번의 연산을 해야하기 때문입니다.



그런데 저번 포스팅에  사용한 예시  get_gcd(110.33)에서 뺄셈을 모두 끝내면 (11,33) 이 되는건 다 알 고 계실겁니다. 여기서 자세히 살펴보면 110을 33으로 나누고 나머지가 11이 나온다는걸 발견할 수 있습니다. 즉 11=110%33으로 대체가능하며 이 방법으로 많은 뺄셈 연산을 나머지 연산으로 대체가능합니다.



그렇다면 이번에는 함수를 이렇게 짜봅시다.



GCD(a,b)=(a%b,b)



이렇게 불필요한 연산을 삭제함으로써 프로그램을 좀더 능률적이게 만들수 있습니다.




아래 프로그램은 이를 이용한 프로그램입니다.





오타 & 지적 환영합니다.


//프로그램 짜다 &와 % 오타내서 몇분 보낸거는 안비밀