\ Greatest Common Divisor Function ( n1 n2 >> gcd ) 
                                                               
: gcd                                                      
   2dup < if      ( smaller arg should be at stack top. )             
   swap then      ( larger_arg smaller_arg    )      
   begin          ( lg sm                     )         
     ?dup            
   while          ( exit on 0 remainder, answer is on stack. )  
     swap over    ( sm lg sm                  )   
     mod          ( sm remainder )      
   repeat         ( ready for next iteration  )        
;                 ( return from subroutine.   )        

CR
3 15 gcd . CR
2 15 gcd . CR
6 45 gcd . CR
