From c697a7e127f822b01cbc6336aad73985005a8273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Lema=C5=84czyk?= Date: Thu, 23 Oct 2025 01:48:11 +0200 Subject: [PATCH] Throw when divisor cycle resolution fails --- PerfectNumbers.Core/Cpu/MersenneCpuDivisorScanSession.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PerfectNumbers.Core/Cpu/MersenneCpuDivisorScanSession.cs b/PerfectNumbers.Core/Cpu/MersenneCpuDivisorScanSession.cs index 1dcd49b..1279369 100644 --- a/PerfectNumbers.Core/Cpu/MersenneCpuDivisorScanSession.cs +++ b/PerfectNumbers.Core/Cpu/MersenneCpuDivisorScanSession.cs @@ -35,8 +35,8 @@ internal sealed class MersenneCpuDivisorScanSession : IMersenneNumberDivisorByDi divisorCycle = DivisorCycleCache.Shared.GetCycleLength(divisor); if (divisorCycle == 0UL) { - hits.Clear(); - return; + // DivisorCycleCache guarantees a positive cycle for divisors greater than one. + throw new InvalidOperationException($"Divisor cycle solver returned zero for divisor {divisor}."); } }