From 51881687f5b0cf4761e11f916842e92c91078299 Mon Sep 17 00:00:00 2001 From: Georgios Chatzopoulos Date: Wed, 6 May 2026 22:42:04 +0300 Subject: [PATCH] (Added the GCD improvement to mode 1 too. --- src/stergios.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/stergios.c b/src/stergios.c index a07fd99..7136e4e 100755 --- a/src/stergios.c +++ b/src/stergios.c @@ -5,11 +5,6 @@ #include #define HASH_SIZE 200003 -//#define LIMIT 100000000LL - -//#define HASH_SIZE 200000003 -//const int128_t LIMIT = (int128_t)1000000000ULL * 1000000000ULL * 1000000000ULL; - int128_t LIMIT = 0; typedef struct Node { @@ -197,14 +192,15 @@ int main() { } int128_t greater = b0 >= c0 ? b0 : c0; - LIMIT = a0 >= greater ? a0 * greater / 2 : b0 * c0 / 2; + int128_t gcd = gcd3(a0, b0, c0); + LIMIT = a0 >= greater ? a0 * greater / (2 * gcd * gcd) : b0 * c0 / (2 * gcd * gcd); if (!safe_val(a0) || !safe_val(b0) || !safe_val(c0)) { fprintf(stderr, "Initial values exceed safe limit.\n"); return 1; } - run_bfs(&sum, a0, b0, c0, print_mode); + run_bfs(&sum, a0 / gcd, b0 / gcd, c0 / gcd, print_mode); } else if (mode == 2) { int p = 3; int exponents[3] = {2*p + 2, p, p};