Prime triangle: Difference between revisions

Content added Content deleted
m (Rust - minor edit)
m (C - minor edit)
Line 176: Line 176:
}
}


void prime_triangle_count(unsigned int* a, size_t length, int* count) {
int prime_triangle_count(unsigned int* a, size_t length) {
int count = 0;
if (length == 2) {
if (length == 2) {
if (is_prime(a[0] + a[1]))
if (is_prime(a[0] + a[1]))
++*count;
++count;
return;
} else {
for (size_t i = 1; i + 1 != length; ++i) {
}
for (size_t i = 1; i + 1 != length; ++i) {
if (is_prime(a[0] + a[i])) {
if (is_prime(a[0] + a[i])) {
swap(a, i, 1);
swap(a, i, 1);
count += prime_triangle_count(a + 1, length - 1);
prime_triangle_count(a + 1, length - 1, count);
swap(a, i, 1);
swap(a, i, 1);
}
}
}
}
}
return count;
}
}


Line 214: Line 216:
for (unsigned int i = 0; i < n; ++i)
for (unsigned int i = 0; i < n; ++i)
a[i] = i + 1;
a[i] = i + 1;
int count = 0;
prime_triangle_count(a, n, &count);
if (n > 2)
if (n > 2)
printf(" ");
printf(" ");
printf("%d", count);
printf("%d", prime_triangle_count(a, n));
}
}
printf("\n");
printf("\n");
Line 251: Line 251:
1 1 1 1 1 2 4 7 24 80 216 648 1304 3392 13808 59448 155464 480728 1588162
1 1 1 1 1 2 4 7 24 80 216 648 1304 3392 13808 59448 155464 480728 1588162


Elapsed time: 0.649755 seconds
Elapsed time: 0.639333 seconds
</pre>
</pre>