terça-feira, 10 de maio de 2011

Algoritimo Estendido de Euclides em C

Algoritimo simples para o cálculo do algoritimo estendido de Euclides em C

#include<stdio.h>
int main(){
    int a, b, q, r2b, r1b, r, op, x2b, x1b, x, y2b, y1b, y, mdcab, linhas;
   for(;;){
            printf("\n           MENU\n\n");
            printf("1 - Calcular MDC\n");
            printf("2 - Sair\n \nOpcao:");
            scanf("%d",&op);
            if(op==1){
    printf("\nEntre com dois numeros inteiros, primeiro o maior, depois o menor:\n");
    scanf("%d",&a);
    scanf("%d",&b);
    r=1;
    x2b=1;
    y2b=0;
    x1b=0;
    y1b=1;
    r2b=a;
    r1b=b;
    linhas=2;
    while(r!=0){
                q=r2b/r1b;
                x=x2b-q*x1b;
                y=y2b-q*y1b;
                r=r2b-r1b*q;
                linhas=linhas+1;
                x2b=x1b;
                x1b=x;
                y2b=y1b;
                y1b=y;
                r2b=r1b;
                r1b=r;
                }
    mdcab=a*x2b+b*y2b;
    printf("\n MDC(%d,%d)=%d\n",a,b,mdcab);
    printf("x=%d\n",x2b);
    printf("y=%d\n",y2b);
    printf("O Algoritmo Extendido de Euclides executou %d linhas",linhas);
}
else if(op==2){
     break;
     }
     else{
          printf("Opcao inexistente");
}
}
}

Nenhum comentário:

Postar um comentário