// test_gcd.swift // compute greatest common divisor print("test_gcd.swift running") var a = 10 var b = 5 var a1 = 1 a1 = gcd(a,b) print("a=\(a), b=\(b), a1=\(a1)") a = 6 b = 4 a1 = gcd(a,b) print("a=\(a), b=\(b), a1=\(a1)") a = -3 b = -9 a1 = gcd(a,b) print("a=\(a), b=\(b), a1=\(a1)") print("test_gcp.swift finished") func gcd(_ a:Int,_ b:Int) -> Int { var a1 = 0 var b1 = 0 var r = 0 var q = 0 if a == 0 || b == 0 { a1 = 1 return 1 } if abs(a) > abs(b) { a1 = abs(a) b1 = abs(b) } else { a1 = abs(b) b1 = abs(a) } r = 1 while r != 0 { q = a1 / b1 r = a1 - q * b1 a1 = b1; b1 = r; } return a1 } // end gcd // end test_gcd.swift