Branch Coverage

omega_primes.c
Criterion Covered Total %
branch 105 192 54.6


line true false branch
24 3945 0 if (k > 0 && !(n& 1)) { k--; do { n >>= 1; } while (!(n& 1)); }
2005 1940 if (k > 0 && !(n& 1)) { k--; do { n >>= 1; } while (!(n& 1)); }
1975 2005 if (k > 0 && !(n& 1)) { k--; do { n >>= 1; } while (!(n& 1)); }
25 3864 81 if (k > 0 && !(n% 3)) { k--; do { n /= 3; } while (!(n% 3)); }
1316 2548 if (k > 0 && !(n% 3)) { k--; do { n /= 3; } while (!(n% 3)); }
608 1316 if (k > 0 && !(n% 3)) { k--; do { n /= 3; } while (!(n% 3)); }
26 3812 133 if (k > 0 && !(n% 5)) { k--; do { n /= 5; } while (!(n% 5)); }
801 3011 if (k > 0 && !(n% 5)) { k--; do { n /= 5; } while (!(n% 5)); }
199 801 if (k > 0 && !(n% 5)) { k--; do { n /= 5; } while (!(n% 5)); }
27 3771 174 if (k > 0 && !(n% 7)) { k--; do { n /= 7; } while (!(n% 7)); }
562 3209 if (k > 0 && !(n% 7)) { k--; do { n /= 7; } while (!(n% 7)); }
89 562 if (k > 0 && !(n% 7)) { k--; do { n /= 7; } while (!(n% 7)); }
28 3736 209 if (k > 0 && !(n%11)) { k--; do { n /= 11; } while (!(n%11)); }
356 3380 if (k > 0 && !(n%11)) { k--; do { n /= 11; } while (!(n%11)); }
38 356 if (k > 0 && !(n%11)) { k--; do { n /= 11; } while (!(n%11)); }
30 200 3745 if (n == 1) return (k == 0);
31 164 3581 if (k == 0) return (n == 1);
32 214 3367 if (k == 1) return is_prime_power(n);
33 3186 181 if (n < ipowsafe(13,k)) return 0;
49 0 0 if (k > 1) {
50 0 0 SIMPLE_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 SIMPLE_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 SIMPLE_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
51 0 0 if ((m % p) == 0) continue;
52 0 0 if (UV_MAX/m < p) break;
53 0 0 for (v = m*p; UV_MAX/v >= p && v*p <= hi; v *= p)
0 0 for (v = m*p; UV_MAX/v >= p && v*p <= hi; v *= p)
59 0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
0 0 START_DO_FOR_EACH_PRIME(pstart, rootint(hi/m, k)) {
60 0 0 if ((m % p) == 0) continue;
61 0 0 for (v = m; UV_MAX/v >= p && v*p <= hi; ) {
0 0 for (v = m; UV_MAX/v >= p && v*p <= hi; ) {
63 0 0 if (v >= lo) { /* Add v to kop list */
64 0 0 if (n >= lsize) {
66 0 0 Renew(l, lsize, UV);
78 0 0 if (hi < lo) croak("range_omega_prime_sieve error hi %"UVuf" < lo %"UVuf"\n",hi,lo);
82 0 0 New(0, *ret, skop, UV);
94 0 5 if (hi < lo) croak("range_omega_prime_sieve error hi %"UVuf" < lo %"UVuf"\n",hi,lo);
97 5 0 if (min == 0 || min > hi) return 0;
0 5 if (min == 0 || min > hi) return 0;
98 5 0 if (lo < min) lo = min;
100 1 4 if (k == 1) return prime_power_sieve(ret, lo, hi);
103 4 0 if ( ((hi-lo) > 100000000UL) || (k >= 10 && (hi-lo) > 5000000UL) )
0 4 if ( ((hi-lo) > 100000000UL) || (k >= 10 && (hi-lo) > 5000000UL) )
0 0 if ( ((hi-lo) > 100000000UL) || (k >= 10 && (hi-lo) > 5000000UL) )
107 4 0 if (ret != 0) {
109 0 4 New(0, l, lmax, UV);
111 10220 4 for (i = 0; i < hi-lo+1; i++) {
112 10060 160 if (nf[i] != k) continue;
113 160 0 if (l != 0) {
114 0 160 if (n >= lmax) { lmax = 1 + lmax * 1.2; Renew(l, lmax, UV); }
0 0 if (n >= lmax) { lmax = 1 + lmax * 1.2; Renew(l, lmax, UV); }
120 4 0 if (ret != 0) *ret = l;
138 0 403 if (k >= 16) return 0;
140 0 403 if (k >= BITS_PER_WORD) return 0;
141 322 81 if (max[k] == 0) return UV_MAX;
152 0 0 if (k >= 16) return 0;
154 0 0 if (k >= BITS_PER_WORD) return 0;
166 5610 9747 if (k == 2) {
168 18185 5610 for (; p <= s; j++, p = r) {
169 18000 185 r = (j < numprimes) ? pr[j] : next_prime(p);
170 35667 0 for (t = m*p, w = n/t; t <= n && w >= r; t *= p, w = n/t) {
17482 18185 for (t = m*p, w = n/t; t <= n && w >= r; t *= p, w = n/t) {
174 10870 17482 r2 <= rlim;
175 10859 11 r2 = (++k < numprimes) ? pr[k] : rlim+1) {
177 1760 10870 do { u *= r2; count++; } while (n/r2 >= u);
190 0 17482 if (t > n/p) break;
196 16481 9747 for (; p <= s; j++, p = r) {
197 16481 0 r = (j < numprimes) ? pr[j] : next_prime(p);
198 30964 0 for (t = m*p; t <= n; t *= p) {
200 16481 14483 if (r > S) break;
202 0 14483 if (t > n/p) break;
213 2 1036 if (k == 0) return (n >= 1);
214 133 903 if (k == 1) return prime_power_count(n);
218 898 5 if (lo == 0 || n < lo) return 0;
24 874 if (lo == 0 || n < lo) return 0;
220 874 0 maxpr = rootint(n, (k > 10) ? 4 : (k > 6) ? 3 : 2);
20 854 maxpr = rootint(n, (k > 10) ? 4 : (k > 6) ? 3 : 2);
240 0 202 if (n == 0) return 0;
241 1 201 if (k == 0) return (n == 1) ? 1 : 0;
243 201 0 if (k > 15 || n > max_omega_prime_count(k)) return 0;
0 201 if (k > 15 || n > max_omega_prime_count(k)) return 0;
246 0 201 if (lo == 0) return 0;
247 5 196 if (n == 1) return lo;
249 39 157 if (k == 1) {
251 0 39 if (hi == 0) hi = max_nth_omega_prime(1);
258 3134 196 while (!is_omega_prime(k,hi))