Ultra useful primes: Difference between revisions
Content added Content deleted
(Added C) |
|||
Line 79: | Line 79: | ||
9 | 569 |
9 | 569 |
||
10 | 105</pre> |
10 | 105</pre> |
||
=={{header|C}}== |
|||
{{trans|Wren}} |
|||
{{libheader|GMP}} |
|||
<syntaxhighlight lang="c">#include <stdio.h> |
|||
#include <gmp.h> |
|||
int a(unsigned int n) { |
|||
int k; |
|||
mpz_t p; |
|||
mpz_init_set_ui(p, 1); |
|||
mpz_mul_2exp(p, p, 1 << n); |
|||
mpz_sub_ui(p, p, 1); |
|||
for (k = 1; ; k += 2) { |
|||
if (mpz_probab_prime_p(p, 15) > 0) return k; |
|||
mpz_sub_ui(p, p, 2); |
|||
} |
|||
} |
|||
int main() { |
|||
unsigned int n; |
|||
printf(" n k\n"); |
|||
printf("----------\n"); |
|||
for (n = 1; n < 15; ++n) printf("%2d %d\n", n, a(n)); |
|||
return 0; |
|||
}</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
n k |
|||
---------- |
|||
1 1 |
|||
2 3 |
|||
3 5 |
|||
4 15 |
|||
5 5 |
|||
6 59 |
|||
7 159 |
|||
8 189 |
|||
9 569 |
|||
10 105 |
|||
11 1557 |
|||
12 2549 |
|||
13 2439 |
|||
14 13797 |
|||
</pre> |
|||
=={{header|Factor}}== |
=={{header|Factor}}== |