Merge pull request #35 from mlemanczyk/codex/debug-residue-iteration-in-evenperfectbitscanner

Prevent residue filter from skipping primes after reaching maxP
This commit is contained in:
Marek Lemańczyk authored and GitHub committed 2025-09-20 04:53:36 +02:00
commit bf1a498456
1 file changed
+17 -3
+17 -3
View File
@@ -643,9 +643,17 @@ internal static class Program
}
else
{
for (j = 0; j < count && !Volatile.Read(ref _limitReached); j++)
bool reachedMax = false;
for (j = 0; j < count; j++)
{
p = buffer[j];
if (Volatile.Read(ref _limitReached) && p > maxP)
{
break;
}
if (useFilter && !filter.Contains(p))
{
continue;
@@ -653,12 +661,18 @@ internal static class Program
passedAllTests = IsEvenPerfectCandidate(p, divisorCyclesSearchLimit, out searchedMersenne, out detailedCheck);
PrintResult(p, searchedMersenne, detailedCheck, passedAllTests);
if (p == maxP)
{
Volatile.Write(ref _limitReached, true);
break;
reachedMax = true;
}
}
if (reachedMax)
{
Volatile.Write(ref _limitReached, true);
break;
}
}
}
});