Una buena enciclopedia libre...
  http://es.wikipedia.org/wiki/QBASIC http://es.wikipedia.org/wiki/M%C3%A1...C3%BAn_divisor http://es.wikipedia.org/wiki/M%C3%AD..._m%C3%BAltiplo http://es.wikipedia.org/wiki/Algoritmo_de_Euclides   Cita:  En lenguaje C (versión recursiva):
 
unsigned int mcd(unsigned int a, unsigned int b){
     return (b == 0)? a : mcd(b, a % b);
 }
 
En lenguaje Logo (versión recursiva):
 
para mcd :a :b
 sisino :b = 0 [
  devuelve :a
 ] [
  devuelve mcd :b resto :a :b
 ]
fin
 
En lenguaje C (versión iterativa):
 
unsigned int mcd(unsigned int a, unsigned int b){
     unsigned int t;
     while (a > 0){
         t = a;
         a = b % a;
         b = t;
     }
     return b;
 }
 
En lenguaje Logo (versión iterativa):
 
para mcd :a :b
 mientras [:a > 0] [
  haz "t :a
  haz "a resto :b :a
  haz "b :t
 ]
 devuelve :b
fin
 
En lenguaje Visual Basic 8 (versión iterativa):
 
Public Function mcd(a As UInteger, b As UInteger) As UInteger
     Dim t As UInteger
     While a > 0
         t = a
         a = b Mod a
         b = t
     End While
     Return b
 End Function
 
En lenguaje Haskell (versión recursiva):
 
mcd::Int->Int->Int
mcd a 0 = a
mcd a b = mcd b (mod a b)
 
En lenguaje Pascal (versión iterativa):
 
function MCD(a , b:integer):integer;
 var
   t,result:integer;
 begin
   if b = 0 then
     result := a
   else
     while a > 0 do
     begin
       t := a;
       a := b mod a;
       b := t;
       result :=  b
     end;
   MCD:=result;
 end;
    Ahora con todo ese material solo te queda pensar un poquito...
y estudiar un poco más .... 
salu2