Prime numbers whose neighboring pairs are tetraprimes: Difference between revisions

→‎{{header|C}}: Wasn't quite right before - hence problem with Wren alignment.
(→‎{{header|Wren}}: Still not quite right, manually reverting last two edits.)
Tag: Manual revert
(→‎{{header|C}}: Wasn't quite right before - hence problem with Wren alignment.)
Line 216:
}
return count == 4;
}
 
int prevPrime(int n) {
size_t l = 0, r = size, m;
ifwhile (pl < jr) {
m = (l + r)/2;
if (primes[m] > n) {
r = m;
} else {
ifl (j= ==m TEN_MILLION)+ break1;
}
}
return primes[r-1];
}
 
Line 243 ⟶ 256:
GArray *tetras;
init();
int highest5 = prevPrime(100000);
int highest6 = prevPrime(1000000);
int highest7 = primes[size - 1];
setlocale(LC_NUMERIC, "");
for (s = 0; s < size; ++s) {
p = primes[s];
 
if (p < j) {
// process even numbers first as likely to have most factors
if (isTetraPrime(p-1) && isTetraPrime(p-2)) {
g_array_append_val(tetras1, p);
if ((p-1)%7 == 0 || (p-2)%7 == 0) ++sevens1;
}
 
if (isTetraPrime(p+1) && isTetraPrime(p+2)) {
g_array_append_val(tetras2, p);
if g_array_append_val((p+1)%7tetras2, == 0 || (p+2)%7 == 0) ++sevens2;
}if ((p+1)%7 == 0 || (p+2)%7 == 0) ++sevens2;
} else {
if (p == highest5 || p == highest6 || p == highest7) {
for (i = 0; i < 2; ++i) {
tetras = (i == 0) ? tetras1 : tetras2;
Line 263 ⟶ 281:
t = (i == 0) ? "preceding" : "following";
printf("Found %'d primes under %'d whose %s neighboring pair are tetraprimes", c, j, t);
if (jp == 100000highest5) {
printf(":\n");
for (k = 0; k < tetras->len; ++k) {
Line 287 ⟶ 305:
free(gaps);
}
if (j == TEN_MILLION) break;
j *= 10;
}
9,490

edits