| line |
true |
false |
branch |
|
38
|
3 |
0 |
if (k <= 1 || k >= BITS_PER_WORD) return 0; |
|
|
0 |
3 |
if (k <= 1 || k >= BITS_PER_WORD) return 0; |
|
39
|
0 |
3 |
if (k > MPU_MAX_POW3) /* Larger n would not fit in a UV type */ |
|
41
|
3 |
0 |
while ((k-r) > 1 && (n>>r) < _pow3[k-r]) |
|
|
0 |
3 |
while ((k-r) > 1 && (n>>r) < _pow3[k-r]) |
|
49
|
0 |
555 |
if (k > MPU_MAX_POW3) /* Larger n would not fit in a UV type */ |
|
51
|
1903 |
0 |
while (k >= r && ((*n)>>r) < _pow3[k-r]) |
|
|
1348 |
555 |
while (k >= r && ((*n)>>r) < _pow3[k-r]) |
|
54
|
84 |
471 |
if (r > 0) { |
|
63
|
24 |
0 |
if (k <= 1 || k >= BITS_PER_WORD) return 0; |
|
|
0 |
24 |
if (k <= 1 || k >= BITS_PER_WORD) return 0; |
|
64
|
0 |
24 |
if (k > A078843_MAX_K) { |
|
65
|
0 |
0 |
if (n >= _first_3[A078843_MAX_K]) |
|
69
|
91 |
24 |
while (n < _first_3[k-r]) |
|
79
|
2 |
0 |
MPUassert(n < 8 && k >= 2, "Fast small nth almost prime out of range"); |
|
|
0 |
2 |
MPUassert(n < 8 && k >= 2, "Fast small nth almost prime out of range"); |
|
80
|
0 |
2 |
if (k == 2) return semi[n]; |
|
114
|
4 |
0 |
SIMPLE_FOR_EACH_PRIME(2, cbrtn) { |
|
|
35 |
4 |
SIMPLE_FOR_EACH_PRIME(2, cbrtn) { |
|
|
35 |
0 |
SIMPLE_FOR_EACH_PRIME(2, cbrtn) { |
|
117
|
4 |
31 |
if ((lo <= 2) && (hi >= 2)) sum += CACHED_PC(cache,n/(pdiv*2)) - j++; |
|
|
4 |
0 |
if ((lo <= 2) && (hi >= 2)) sum += CACHED_PC(cache,n/(pdiv*2)) - j++; |
|
118
|
8 |
27 |
if ((lo <= 3) && (hi >= 3)) sum += CACHED_PC(cache,n/(pdiv*3)) - j++; |
|
|
8 |
0 |
if ((lo <= 3) && (hi >= 3)) sum += CACHED_PC(cache,n/(pdiv*3)) - j++; |
|
119
|
11 |
24 |
if ((lo <= 5) && (hi >= 5)) sum += CACHED_PC(cache,n/(pdiv*5)) - j++; |
|
|
9 |
2 |
if ((lo <= 5) && (hi >= 5)) sum += CACHED_PC(cache,n/(pdiv*5)) - j++; |
|
120
|
11 |
24 |
if (lo < 7) lo = 7; |
|
121
|
32 |
3 |
if (lo <= hi) { |
|
125
|
32 |
32 |
while (next_segment_primes(ctx, &seg_base, &seg_low, &seg_high)) { |
|
126
|
999 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
|
32 |
967 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
|
903 |
64 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
|
999 |
9 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
|
41 |
32 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
147
|
3081 |
0 |
if (hi-lo < 500) { |
|
148
|
3081 |
0 |
SIMPLE_FOR_EACH_PRIME(lo, hi) { |
|
|
20310 |
3081 |
SIMPLE_FOR_EACH_PRIME(lo, hi) { |
|
|
20310 |
0 |
SIMPLE_FOR_EACH_PRIME(lo, hi) { |
|
154
|
0 |
0 |
if ((lo <= 2) && (hi >= 2)) s += CACHED_PC(cache,n/(pdiv*2)) - j++; |
|
|
0 |
0 |
if ((lo <= 2) && (hi >= 2)) s += CACHED_PC(cache,n/(pdiv*2)) - j++; |
|
155
|
0 |
0 |
if ((lo <= 3) && (hi >= 3)) s += CACHED_PC(cache,n/(pdiv*3)) - j++; |
|
|
0 |
0 |
if ((lo <= 3) && (hi >= 3)) s += CACHED_PC(cache,n/(pdiv*3)) - j++; |
|
156
|
0 |
0 |
if ((lo <= 5) && (hi >= 5)) s += CACHED_PC(cache,n/(pdiv*5)) - j++; |
|
|
0 |
0 |
if ((lo <= 5) && (hi >= 5)) s += CACHED_PC(cache,n/(pdiv*5)) - j++; |
|
157
|
0 |
0 |
if (lo < 7) lo = 7; |
|
158
|
0 |
0 |
if (lo <= hi) { |
|
162
|
0 |
0 |
while (next_segment_primes(ctx, &seg_base, &seg_low, &seg_high)) { |
|
163
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
|
0 |
0 |
START_DO_FOR_EACH_SIEVE_PRIME( segment, seg_base, seg_low, seg_high ) |
|
175
|
0 |
2286 |
if (k == 2) |
|
178
|
2286 |
0 |
SIMPLE_FOR_EACH_PRIME(lo, rootint(n/pdiv,k)) { |
|
|
5337 |
2286 |
SIMPLE_FOR_EACH_PRIME(lo, rootint(n/pdiv,k)) { |
|
|
5337 |
0 |
SIMPLE_FOR_EACH_PRIME(lo, rootint(n/pdiv,k)) { |
|
179
|
3081 |
2256 |
if (k == 3) count += _final_sum(n, pdiv*p, p, cache); |
|
191
|
1 |
46 |
if (k == 0) return (n >= 1); |
|
192
|
46 |
0 |
if (k >= BITS_PER_WORD || (n >> k) == 0) return 0; |
|
|
4 |
42 |
if (k >= BITS_PER_WORD || (n >> k) == 0) return 0; |
|
195
|
1 |
41 |
if (n >= max_nth_almost_prime(k)) |
|
198
|
0 |
41 |
if (k == 0) return n; |
|
199
|
4 |
37 |
if (k == 1) return prime_count(n); |
|
200
|
3 |
34 |
if (k == 2) return semiprime_count(n); |
|
201
|
4 |
30 |
if (k == 3) return almost3prime_count(n); |
|
202
|
0 |
30 |
if (n < 3*(UVCONST(1) << (k-1))) return 1; |
|
203
|
0 |
30 |
if (n < 9*(UVCONST(1) << (k-2))) return 2; |
|
204
|
0 |
30 |
if (n < 10*(UVCONST(1) << (k-2))) return 3; |
|
212
|
2 |
28 |
if (csize < 32) csize = 32; |
|
213
|
12 |
18 |
if (csize > 16UL*1024) csize = n / (1UL << (k+2)); /* 15 */ |
|
214
|
0 |
30 |
if (csize > 128UL*1024) csize = n / (1UL << (k+4)); /* 84 */ |
|
215
|
0 |
30 |
if (csize > 1UL*1024*1024) csize = n / (1UL << (k+6)); /* 421 */ |
|
216
|
0 |
30 |
if (((csize >> 16) >> 16) >= 3) csize >>= 1; |
|
225
|
0 |
0 |
if (k == 0) return (lo <= 1 && hi >= 1); |
|
|
0 |
0 |
if (k == 0) return (lo <= 1 && hi >= 1); |
|
|
0 |
0 |
if (k == 0) return (lo <= 1 && hi >= 1); |
|
226
|
0 |
0 |
if (k == 1) return prime_count_range(lo, hi); |
|
227
|
0 |
0 |
if (k == 2) return semiprime_count_range(lo, hi); |
|
229
|
0 |
0 |
if (k >= BITS_PER_WORD || (hi >> k) == 0 || hi < lo) return 0; |
|
|
0 |
0 |
if (k >= BITS_PER_WORD || (hi >> k) == 0 || hi < lo) return 0; |
|
|
0 |
0 |
if (k >= BITS_PER_WORD || (hi >> k) == 0 || hi < lo) return 0; |
|
231
|
0 |
0 |
- (((lo >> k) == 0) ? 0 : almost_prime_count(k,lo-1)); |
|
237
|
0 |
159 |
if (k == 0) return (n >= 1); |
|
238
|
159 |
0 |
if (k >= BITS_PER_WORD || (n >> k) == 0) return 0; |
|
|
9 |
150 |
if (k >= BITS_PER_WORD || (n >> k) == 0) return 0; |
|
241
|
1 |
149 |
if (k == 1) return prime_count_approx(n); |
|
242
|
1 |
148 |
if (k == 2) return semiprime_count_approx(n); |
|
243
|
0 |
148 |
if (n < 3*(UVCONST(1) << (k-1))) return 1; |
|
244
|
0 |
148 |
if (n < 9*(UVCONST(1) << (k-2))) return 2; |
|
245
|
0 |
148 |
if (n < 10*(UVCONST(1) << (k-2))) return 3; |
|
247
|
40 |
108 |
if (k == 3 && n < 102) { |
|
|
3 |
37 |
if (k == 3 && n < 102) { |
|
249
|
12 |
0 |
for (lo=0; lo < 19; lo++) |
|
250
|
3 |
9 |
if (n < sm3[lo]) |
|
257
|
37 |
108 |
if (k == 3) { /* Much better fit for k=3. */ |
|
261
|
12 |
25 |
if (x <= 638) { s = 1.554688; a = 0.865814; } |
|
262
|
2 |
23 |
else if (x <= 1544) { s = 1.050000; a = 0.822256; } |
|
263
|
8 |
15 |
else if (x <= 1927) { s = 0.625000; a = 0.791747; } |
|
264
|
11 |
4 |
else if (x <= 486586) { s = 2.865611; a = 1.004090; } |
|
265
|
0 |
4 |
else if (x <= 1913680) { s = 2.790963; a = 0.999618; } |
|
266
|
0 |
4 |
else if (x <= 22347532) { s = 2.719238; a = 0.995635; } |
|
267
|
2 |
2 |
else if (x <= 2.95e8) { s = 2.584473; a = 0.988802; } |
|
268
|
0 |
2 |
else if (x <= 4.20e9) { s = 2.457108; a = 0.983098; } |
|
269
|
0 |
2 |
else if (x <= 7.07e10) { s = 2.352818; a = 0.978931; } |
|
270
|
0 |
2 |
else if (x <= 1.36e12) { s = 2.269745; a = 0.975953; } |
|
271
|
2 |
0 |
else if (x <= 4.1e13) { s = 2.203002; a = 0.973796; } |
|
272
|
0 |
0 |
else if (x <= 9.2e14) { s = 2.148463; a = 0.972213; } |
|
275
|
0 |
37 |
if (est < lo) est = lo; |
|
276
|
0 |
37 |
else if (est > hi) est = hi; |
|
304
|
41 |
67 |
if (k > 11) return lo + (hi-lo) * 0.20; |
|
336
|
0 |
5 |
if (n == 0) return 0; |
|
337
|
0 |
5 |
if (k == 0) return (n == 1) ? 1 : 0; |
|
338
|
0 |
5 |
if (k == 1) return nth_prime_upper(n); |
|
339
|
0 |
5 |
if (n < 8) return _fast_small_nth_almost_prime(k, n); |
|
343
|
0 |
5 |
if (n >= maxc) return n == maxc ? maxn : 0; |
|
|
0 |
0 |
if (n >= maxc) return n == maxc ? maxn : 0; |
|
346
|
1 |
4 |
if (r > 0) { |
|
348
|
1 |
0 |
if (redup > maxn || ((redup<>r) != redup) |
|
|
0 |
1 |
if (redup > maxn || ((redup<>r) != redup) |
|
363
|
0 |
14 |
if (n == 0) return 0; |
|
364
|
0 |
14 |
if (k == 0) return (n == 1) ? 1 : 0; |
|
365
|
0 |
14 |
if (k == 1) return nth_prime_lower(n); |
|
366
|
0 |
14 |
if (n < 8) return _fast_small_nth_almost_prime(k, n); |
|
369
|
0 |
14 |
if (n >= maxc) return n == maxc ? max_nth_almost_prime(k) : 0; |
|
|
0 |
0 |
if (n >= maxc) return n == maxc ? max_nth_almost_prime(k) : 0; |
|
372
|
2 |
12 |
if (r > 0) return nth_almost_prime_lower(k-r, n) << r; |
|
384
|
0 |
10 |
if (n == 0) return 0; |
|
385
|
0 |
10 |
if (k == 0) return (n == 1) ? 1 : 0; |
|
386
|
1 |
9 |
if (k == 1) return nth_prime_approx(n); |
|
387
|
1 |
8 |
if (k == 2) return nth_semiprime_approx(n); |
|
390
|
0 |
8 |
if (n >= maxc) return n == maxc ? max_nth_almost_prime(k) : 0; |
|
|
0 |
0 |
if (n >= maxc) return n == maxc ? max_nth_almost_prime(k) : 0; |
|
394
|
0 |
8 |
if (n < 8) return _fast_small_nth_almost_prime(k,n); |
|
411
|
0 |
10 |
if (n == 0) return 0; |
|
412
|
0 |
10 |
if (k == 0) return (n == 1) ? 1 : 0; |
|
413
|
1 |
9 |
if (k == 1) return nth_prime(n); |
|
414
|
2 |
7 |
if (k == 2) return nth_semiprime(n); |
|
417
|
0 |
7 |
if (n >= maxc) return n == maxc ? max_nth_almost_prime(k) : 0; |
|
|
0 |
0 |
if (n >= maxc) return n == maxc ? max_nth_almost_prime(k) : 0; |
|
420
|
2 |
5 |
if (n < 8) return _fast_small_nth_almost_prime(k,n); |
|
422
|
1 |
4 |
if (r > 0) return nth_almost_prime(k-r,n) << r; |
|
428
|
1 |
3 |
if (k == 3) |
|
430
|
1 |
2 |
if (k == 4) |
|
436
|
6232 |
2 |
while (!is_almost_prime(k,hi)) |
|
549
|
363 |
0 |
if (k >= BITS_PER_WORD || (n >> k) == 0) { *lower = *upper = 0; return; } |
|
|
0 |
363 |
if (k >= BITS_PER_WORD || (n >> k) == 0) { *lower = *upper = 0; return; } |
|
551
|
0 |
363 |
if (k == 0) { *lower = *upper = (n >= 1); return; } |
|
552
|
0 |
363 |
if (k == 1) { *lower = prime_count_lower(n); *upper = prime_count_upper(n); return; } |
|
553
|
0 |
363 |
if (n < 3*(UVCONST(1) << (k-1))) { *lower = *upper = 1; return; } |
|
554
|
0 |
363 |
if (n < 9*(UVCONST(1) << (k-2))) { *lower = *upper = 2; return; } |
|
555
|
0 |
363 |
if (n < 10*(UVCONST(1) << (k-2))) { *lower = *upper = 3; return; } |
|
558
|
0 |
363 |
if (n >= max_nth_almost_prime(k)) |
|
568
|
234 |
129 |
if (n <= 1048575U) { |
|
569
|
0 |
234 |
MPUassert(k <= 12, "almost prime count: 20-bit n doesn't exceed k 12"); |
|
571
|
123 |
6 |
} else if (n <= 4294967295U) { |
|
572
|
0 |
123 |
MPUassert(k <= 20, "almost prime count: 32-bit n doesn't exceed k 20"); |
|
575
|
0 |
6 |
MPUassert(k <= 40, "almost prime count: after reduction, k <= 40"); |
|
579
|
12 |
351 |
if (k == 2) { |
|
581
|
0 |
12 |
if (x >= 1e12) { |
|
585
|
107 |
244 |
} else if (k == 3) { |
|
589
|
37 |
70 |
if (n < 638) { |
|
591
|
19 |
51 |
} else if (n <= 1926) { |
|
594
|
47 |
4 |
} else if (n <= 500194) { |
|
597
|
2 |
2 |
} else if (n <= 3184393786U) { |
|
607
|
2 |
105 |
if (n > 4294967295U) multu = 0.8711; |
|
608
|
89 |
155 |
} else if (k == 4) { |
|
613
|
2 |
87 |
if (x > 1e12) { |
|
618
|
2 |
87 |
if (n > 4294967295U) multu = 0.780; |
|
619
|
2 |
87 |
if (x > 1e12) multu = 0.6921; |
|
628
|
1979 |
155 |
for (i = 1; i < k; i++) |
|
641
|
363 |
0 |
*lower = (boundl >= UV_MAX || (max > 0 && boundl > max)) ? max : (UV)boundl; |
|
|
363 |
0 |
*lower = (boundl >= UV_MAX || (max > 0 && boundl > max)) ? max : (UV)boundl; |
|
|
363 |
0 |
*lower = (boundl >= UV_MAX || (max > 0 && boundl > max)) ? max : (UV)boundl; |
|
642
|
363 |
0 |
*upper = (boundu >= UV_MAX || (max > 0 && boundu > max)) ? max : (UV)(boundu+1.0); |
|
|
363 |
0 |
*upper = (boundu >= UV_MAX || (max > 0 && boundu > max)) ? max : (UV)(boundu+1.0); |
|
|
363 |
0 |
*upper = (boundu >= UV_MAX || (max > 0 && boundu > max)) ? max : (UV)(boundu+1.0); |
|
647
|
0 |
163 |
if (k == 2 && n < 256) return semiprime_count(n); |
|
|
0 |
0 |
if (k == 2 && n < 256) return semiprime_count(n); |
|
654
|
0 |
55 |
if (k == 2 && n < 256) return semiprime_count(n); |
|
|
0 |
0 |
if (k == 2 && n < 256) return semiprime_count(n); |
|
681
|
0 |
448 |
if (k >= BITS_PER_WORD) return 0; |
|
700
|
0 |
420 |
if (k >= BITS_PER_WORD) return 0; |
|
730
|
0 |
0 |
if (*count > 1) { |
|
733
|
0 |
0 |
for (j = 0, i = 1; i < *count; i++) { |
|
734
|
0 |
0 |
if (L[i] != L[j]) |
|
739
|
0 |
0 |
if (minimal) { |
|
741
|
0 |
0 |
Renew(*list, *Lsize, UV); |
|
742
|
0 |
0 |
} else if (*count * 1.5 > *Lsize) { |
|
744
|
0 |
0 |
Renew(*list, *Lsize, UV); |
|
751
|
0 |
0 |
if (k == 0 || k >= BITS_PER_WORD) { *list = 0; return 0; } |
|
|
0 |
0 |
if (k == 0 || k >= BITS_PER_WORD) { *list = 0; return 0; } |
|
752
|
0 |
0 |
if ((lo >> k) == 0) lo = UVCONST(1) << k; |
|
753
|
0 |
0 |
if (hi > max_nth_almost_prime(k)) hi = max_nth_almost_prime(k); |
|
754
|
0 |
0 |
if (lo > hi) { *list = 0; return 0; } |
|
756
|
0 |
0 |
if (k == 1) return range_prime_sieve(list, lo, hi); |
|
757
|
0 |
0 |
if (k == 2) return range_semiprime_sieve(list, lo, hi); |
|
769
|
0 |
0 |
New(0, L, Lsize, UV); |
|
771
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
|
0 |
0 |
START_DO_FOR_EACH_PRIME(2, lastprime) { |
|
772
|
0 |
0 |
for (i = 0; i < nkap1; i++) { |
|
774
|
0 |
0 |
if (prod < lo) continue; |
|
775
|
0 |
0 |
if (prod > hi) break; |
|
776
|
0 |
0 |
if (count >= Lsize) |
|
793
|
3 |
0 |
if (k == 0 || k >= BITS_PER_WORD) { *list = 0; return 0; } |
|
|
0 |
3 |
if (k == 0 || k >= BITS_PER_WORD) { *list = 0; return 0; } |
|
794
|
0 |
3 |
if ((slo >> k) == 0) slo = UVCONST(1) << k; |
|
795
|
0 |
3 |
if (shi > max_nth_almost_prime(k)) shi = max_nth_almost_prime(k); |
|
796
|
0 |
3 |
if (slo > shi) { *list = 0; return 0; } |
|
799
|
0 |
3 |
if (shi-slo+1 < thresh_pred) { |
|
801
|
0 |
0 |
New(0, S, Ssize, UV); |
|
802
|
0 |
0 |
for (i = 0, j = 0; i < shi-slo+1; i++) |
|
803
|
0 |
0 |
if (is_almost_prime(k, slo+i)) |
|
810
|
0 |
3 |
if (k == 1) return range_prime_sieve(list, slo, shi); |
|
811
|
0 |
3 |
if (k == 2) return range_semiprime_sieve(list, slo, shi); |
|
820
|
0 |
3 |
if (r > 0) { |
|
824
|
0 |
0 |
for (i = 0; i < count; i++) |
|
832
|
0 |
3 |
if (Ssize > 10000000UL) Ssize = 10000000UL; |
|
833
|
0 |
3 |
New(0, S, Ssize, UV); |
|
857
|
3 |
0 |
UV kdiv = (k < 3) ? UVCONST(1) : (UVCONST(1) << (k-2)); |
|
860
|
0 |
3 |
New(0, N, segsize+1, UV); |
|
864
|
3 |
3 |
for (lo = slo; lo <= shi && lo >= slo; lo = hi+1) { |
|
|
3 |
0 |
for (lo = slo; lo <= shi && lo >= slo; lo = hi+1) { |
|
866
|
0 |
3 |
if (hi > shi || hi < lo) hi = shi; |
|
|
0 |
0 |
if (hi > shi || hi < lo) hi = shi; |
|
869
|
153 |
3 |
for (i = lo; i <= hi; i++) { |
|
870
|
78 |
75 |
if (!(i&1) && i >= 2) { |
|
|
78 |
0 |
if (!(i&1) && i >= 2) { |
|
871
|
78 |
0 |
const unsigned char nz = (unsigned char)ctz(i); |
|
877
|
3 |
0 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
3 |
0 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
6 |
372018 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
6 |
0 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
3 |
3 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
154755 |
217263 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
2 |
164506 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
9753 |
154753 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
2 |
154753 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
0 |
372016 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
|
1 |
372021 |
START_DO_FOR_EACH_PRIME(3, isqrt(hi/kdiv)) { |
|
879
|
0 |
372021 |
for (i = P_GT_LO_0(p,p,lo); i < range; i += p) |
|
|
368 |
372021 |
for (i = P_GT_LO_0(p,p,lo); i < range; i += p) |
|
881
|
380658 |
372021 |
for (pk = p*p; pk <= hi; pk *= p) { |
|
882
|
0 |
380658 |
for (i = P_GT_LO_0(pk,pk,lo); i < range; i += pk) |
|
|
78 |
380658 |
for (i = P_GT_LO_0(pk,pk,lo); i < range; i += pk) |
|
884
|
0 |
380658 |
if (pk >= maxpk) break; /* Overflow protection */ |
|
887
|
153 |
3 |
for (i = 0; i < range; i++) { |
|
888
|
115 |
38 |
if (N[i] < (lo+i)) |
|
890
|
34 |
119 |
if (nf[i] == k) { |
|
891
|
0 |
34 |
if (count >= Ssize) |
|
892
|
0 |
0 |
Renew(S, Ssize += 10000, UV); |
|
906
|
398 |
346 |
if (k == 1) { |
|
911
|
300 |
98 |
if (start > begp) begp = start; |
|
913
|
393 |
5 |
if (endp < 10000000U) { |
|
914
|
393 |
0 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
66 |
327 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
113 |
922 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
104 |
9 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
38 |
66 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
125 |
797 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
81 |
44 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
0 |
44 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
81 |
44 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
0 |
841 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
|
312 |
642 |
START_DO_FOR_EACH_PRIME(begp, endp) { |
|
915
|
642 |
0 |
if (L != 0) { |
|
916
|
0 |
642 |
if (pos >= size) Renew(L, size += 100000, UV); |
|
|
0 |
0 |
if (pos >= size) Renew(L, size += 100000, UV); |
|
924
|
0 |
5 |
if (L == 0) { |
|
927
|
0 |
5 |
if ((pos + count - 1) >= size) Renew(L, size += (count + 100000), UV); |
|
|
0 |
0 |
if ((pos + count - 1) >= size) Renew(L, size += (count + 100000), UV); |
|
928
|
3 |
5 |
for (i = 0; i < count; i++) |
|
940
|
31151 |
346 |
for (s = rootint(hi/m, k), p = begp; p <= s; p = next_prime(p)) { |
|
942
|
732 |
30419 |
if ((lo/t + (lo % t != 0)) <= (hi/t)) |
|
952
|
0 |
24 |
if (k >= BITS_PER_WORD) { *list = 0; return 0; } |
|
953
|
5 |
19 |
if ((lo >> k) == 0) lo = UVCONST(1) << k; |
|
954
|
1 |
23 |
if (hi > max_nth_almost_prime(k)) hi = max_nth_almost_prime(k); |
|
955
|
1 |
23 |
if (lo > hi) { *list = 0; return 0; } |
|
958
|
3 |
20 |
if (k == 0) { New(0,L,1,UV); L[0]=1; *list=L; return 1; } |
|
959
|
3 |
17 |
if (k == 1) return range_prime_sieve(list, lo, hi); |
|
960
|
2 |
15 |
if (k == 2) return range_semiprime_sieve(list, lo, hi); |
|
963
|
15 |
0 |
if ( (k >= 3 && hi >= 1e12 && (hi-lo) <= 5e6) || |
|
|
3 |
12 |
if ( (k >= 3 && hi >= 1e12 && (hi-lo) <= 5e6) || |
|
|
0 |
3 |
if ( (k >= 3 && hi >= 1e12 && (hi-lo) <= 5e6) || |
|
|
12 |
0 |
if ( (k >= 3 && hi >= 1e12 && (hi-lo) <= 5e6) || |
|
964
|
0 |
12 |
(k >= 3 && hi >= 1e13 && (hi-lo) <= 2e8) || |
|
|
0 |
0 |
(k >= 3 && hi >= 1e13 && (hi-lo) <= 2e8) || |
|
|
12 |
0 |
(k >= 3 && hi >= 1e13 && (hi-lo) <= 2e8) || |
|
965
|
0 |
12 |
(k >= 3 && hi >= 1e14 && (hi-lo) <= 4e8) ) |
|
|
0 |
0 |
(k >= 3 && hi >= 1e14 && (hi-lo) <= 4e8) ) |
|
972
|
12 |
0 |
Lsize = (countest > 10000000U) ? 10000000U : countest+1000; |
|
974
|
0 |
12 |
New(0, L, Lsize, UV); |
|
995
|
200 |
2 |
if (n < 2 || n > MAX_CHEN_PRIME) return 0; |
|
|
0 |
200 |
if (n < 2 || n > MAX_CHEN_PRIME) return 0; |
|
996
|
47 |
153 |
return (is_prime(n) && (is_prime(n+2) || is_semiprime(n+2))); |
|
|
32 |
15 |
return (is_prime(n) && (is_prime(n+2) || is_semiprime(n+2))); |
|
|
22 |
10 |
return (is_prime(n) && (is_prime(n+2) || is_semiprime(n+2))); |
|
1000
|
48 |
0 |
for ( n = next_prime(n); n != 0 && n < MAX_CHEN_PRIME; n = next_prime(n+2) ) |
|
|
48 |
0 |
for ( n = next_prime(n); n != 0 && n < MAX_CHEN_PRIME; n = next_prime(n+2) ) |
|
1001
|
33 |
15 |
if (is_prime(n+2) || is_semiprime(n+2)) |
|
|
21 |
12 |
if (is_prime(n+2) || is_semiprime(n+2)) |