From d962b9ca0181b94cf6adcfd35eabede015de55c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Lema=C5=84czyk?= Date: Mon, 15 Sep 2025 14:23:28 +0200 Subject: [PATCH] Iterate p only until reaching the maximum p from the input file to prevent infinite loops with p increase. --- EvenPerfectBitScanner/Program.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/EvenPerfectBitScanner/Program.cs b/EvenPerfectBitScanner/Program.cs index 0b7452d..7c7d317 100644 --- a/EvenPerfectBitScanner/Program.cs +++ b/EvenPerfectBitScanner/Program.cs @@ -523,6 +523,7 @@ internal static class Program bool useFilter = !string.IsNullOrEmpty(filterFile); HashSet filter = []; + ulong maxP = 0UL; if (useFilter) { Console.WriteLine("Loading filter..."); @@ -532,6 +533,10 @@ internal static class Program { Console.WriteLine($"Adding {p}"); filter.Add(p); + if (p > maxP) + { + maxP = p; + } } }); @@ -608,6 +613,11 @@ internal static class Program isPerfect = IsEvenPerfectCandidate(p, divisorCyclesSearchLimit, out searchedMersenne, out detailedCheck); PrintResult(p, searchedMersenne, detailedCheck, isPerfect); + if (p == maxP) + { + Volatile.Write(ref _limitReached, true); + break; + } } } }