blueloveTH 2 years ago
parent
commit
d93af53776
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/pocketpy.h

+ 7 - 1
src/pocketpy.h

@@ -778,7 +778,13 @@ inline void add_module_math(VM* vm){
     vm->bind_func<2>(mod, "gcd", [](VM* vm, ArgsView args) {
         i64 a = CAST(i64, args[0]);
         i64 b = CAST(i64, args[1]);
-        a = std::gcd(a, b);
+        if(a < 0) a = -a;
+        if(b < 0) b = -b;
+        while(b != 0){
+            i64 t = b;
+            b = a % b;
+            a = t;
+        }
         return VAR(a);
     });
 }