--- /dev/null
+#include "gcd.h"
+
+/*Computes the gcd of two integers, _a and _b.
+ _a: The first integer of which to compute the gcd.
+ _b: The second integer of which to compute the gcd.
+ Return: The non-negative gcd of _a and _b.
+ If _a and _b are both 0, then 0 is returned, though in reality the
+ gcd is undefined, as any integer, no matter how large, will divide 0
+ evenly.*/
+int gcd(int _a,int _b){
+ /*Make both arguments non-negative.
+ This forces the return value to be non-negative.*/
+ if(_a<0)_a=-_a;
+ if(_b<0)_b=-_b;
+ /*Simply use the Euclidean algorithm.*/
+ while(_b){
+ int r;
+ r=_a%_b;
+ _a=_b;
+ _b=r;
+ }
+ return _a;
+}