Cod sursa(job #1107578)

Utilizator TeofilosTeofil Teofilos Data 13 februarie 2014 23:03:49
Problema Algoritmul lui Euclid Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.95 kb
# include <cstdio>

int gcd( int a, int b ) {
    int result ;
    /* Compute Greatest Common divisor using Euclid's Algorithm */
    __asm__ __volatile__ ( "movl %1, %%eax;"
                          "movl %2, %%ebx;"
                          "0: cmpl $0, %%ebx;"
                          "je 1f;"
                          "xorl %%edx, %%edx;"
                          "idivl %%ebx;"
                          "movl %%ebx, %%eax;"
                          "movl %%edx, %%ebx;"
                          "jmp 0b;"
                          "1: movl %%eax, %0;" : "=g" (result) : "g" (a), "g" (b) : "eax", "ebx", "edx"
    );

    return result ;
}

int main() {
    freopen ("euclid2.in", "r", stdin);
    freopen ("euclid2.out", "w", stdout);
    int T;
    for (scanf ("%d", &T); T; --T) {
        int first, second ;
        scanf( "%d%d", &first, &second );
        printf( "%d\n", gcd(first, second) ) ;
    }

    return 0 ;
}