zzuli OJ 1063:最大公約と最小公倍


Description
2つの正の整数を入力し、その最大公約数と最小公倍数を出力します.
Input
2つの正の整数nとm(n,m<=1000000)を入力します.最終結果がintの範囲内であることを保証します.
Output
2つの整数をスペースで区切って出力します.mとnの最大公約数と最小公倍数を表す.
Sample Input
4 6
Sample Output
2 12
HINT
注意演算中のオーバーフローの問題
Source
#include<stdio.h>

int main()
{
    int a, b, r;
    int copyA, copyB;

    scanf("%d%d", &a, &b);
    copyA = a;
    copyB = b;

    while(r = a % b, r != 0) //     0, (b,r)  (a,b)
    {
        a = b;
        b = r;

    }

    printf("%d %d
", b, copyA / b * copyB); // , return 0; }