On Tuesday, 2 May 2017 at 23:09:54 UTC, MysticZach wrote:
On Tuesday, 2 May 2017 at 21:00:36 UTC, Timon Gehr wrote:
On 02.05.2017 22:42, MysticZach wrote:
On Tuesday, 2 May 2017 at 13:44:03 UTC, MysticZach wrote:
   for (;;) {
      if (P(a[i]))
         return i;
      ++count;
      if (count == length)
         return -1;
      i += hop;
      if (i < length)
         continue;
      if (i < skipLength)
         i += hop;

(I guess this should be 'while'.)

skipLength is determined modulo hop, thus it can't be more than one hop away.

Actually, I did botch the implementation. The hopping interval must be based on the prime rather than on n. But you could still short circuit the while loop, I think. `if (prime - n > hop) { skipLength = n + ((prime - n) % hop); }


Reply via email to