최대공약수 ¶
main(a,b){scanf("%d%d",&a,&b);while(a%b)a^=b^=a^=b;printf("%d",b);}
- 언어 : C
- 컴파일 환경 : G++
- 풀이 :
gcc 컴파일러는 사용된 function을 확인하여 필요한 header file을 자동으로 include 해줍니다.
또한 gcc 컴파일러는 타입이 선언되지 않은 변수는 int형으로 처리합니다.
main는 콘솔환경에서의 입력을 위한 인자 2개를 가집니다.
본래 형식은 int main(int,char**)이지만 gcc의 경우 변수형을 선언하지 않으면 두번째 인자도 int형으로 처리됩니다.
a^=b^=a^=b;(a^=b;b^=a;a^=b;)는 추가 변수 없이 두 수의 값을 바꾸는 방법 두 수가 같을 시 두 수의 값이 0이 되는 치명적인 버그가 있습니다. 본 코드에서는 while문에서 a%b라는 조건을 주어 이 버그를 차단하고 있습니다.