Prime triangle: Difference between revisions
Content added Content deleted
m (Rust - minor edit) |
m (C - minor edit) |
||
Line 176: | Line 176: | ||
} |
} |
||
int prime_triangle_count(unsigned int* a, size_t length) { |
|||
⚫ | |||
if (length == 2) { |
if (length == 2) { |
||
if (is_prime(a[0] + a[1])) |
if (is_prime(a[0] + a[1])) |
||
++ |
++count; |
||
} else { |
|||
for (size_t i = 1; i + 1 != length; ++i) { |
|||
} |
|||
if (is_prime(a[0] + a[i])) { |
|||
swap(a, i, 1); |
|||
count += prime_triangle_count(a + 1, length - 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; |
||
⚫ | |||
prime_triangle_count(a, n, &count); |
|||
if (n > 2) |
if (n > 2) |
||
printf(" "); |
printf(" "); |
||
printf("%d", |
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. |
Elapsed time: 0.639333 seconds |
||
</pre> |
</pre> |
||