00001 //N.Yu.Zolotykh 1999 00002 //University of Nizhni Novgorod, Russia 00003 #include <stdlib.h> 00004 #include "powerest.h" 00005 00006 #ifndef GCD_H_ 00007 #define GCD_H_ 00008 00015 00016 00021 00022 template <class item_class> 00023 item_class gcd(const item_class & a, const item_class & b) 00024 { 00025 item_class r; 00026 item_class u = absolute_value(a); 00027 item_class v = absolute_value(b); 00028 while (v != 0) 00029 { 00030 r = u % v; 00031 u = v; 00032 v = r; 00033 } 00034 return u; 00035 } 00036 00037 00038 #endif