Next special primes: Difference between revisions
Content added Content deleted
(Added Go) |
(Added C) |
||
Line 5: | Line 5: | ||
where '''n''' < '''1050'''. |
where '''n''' < '''1050'''. |
||
<br><br> |
<br><br> |
||
=={{header|C}}== |
|||
<lang c>#include <stdio.h> |
|||
#include <stdbool.h> |
|||
bool isPrime(int n) { |
|||
int d; |
|||
if (n < 2) return false; |
|||
if (!(n%2)) return n == 2; |
|||
if (!(n%3)) return n == 3; |
|||
d = 5; |
|||
while (d*d <= n) { |
|||
if (!(n%d)) return false; |
|||
d += 2; |
|||
if (!(n%d)) return false; |
|||
d += 4; |
|||
} |
|||
return true; |
|||
} |
|||
int main() { |
|||
int i, lastSpecial = 3, lastGap = 1; |
|||
printf("Special primes under 1,050:\n"); |
|||
printf("Prime1 Prime2 Gap\n"); |
|||
printf("%6d %6d %3d\n", 2, 3, lastGap); |
|||
for (i = 5; i < 1050; i += 2) { |
|||
if (isPrime(i) && (i-lastSpecial) > lastGap) { |
|||
lastGap = i - lastSpecial; |
|||
printf("%6d %6d %3d\n", lastSpecial, i, lastGap); |
|||
lastSpecial = i; |
|||
} |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
Special primes under 1,050: |
|||
Prime1 Prime2 Gap |
|||
2 3 1 |
|||
3 5 2 |
|||
5 11 6 |
|||
11 19 8 |
|||
19 29 10 |
|||
29 41 12 |
|||
41 59 18 |
|||
59 79 20 |
|||
79 101 22 |
|||
101 127 26 |
|||
127 157 30 |
|||
157 191 34 |
|||
191 227 36 |
|||
227 269 42 |
|||
269 313 44 |
|||
313 359 46 |
|||
359 409 50 |
|||
409 461 52 |
|||
461 521 60 |
|||
521 587 66 |
|||
587 659 72 |
|||
659 733 74 |
|||
733 809 76 |
|||
809 887 78 |
|||
887 967 80 |
|||
967 1049 82 |
|||
</pre> |
|||
=={{header|Go}}== |
=={{header|Go}}== |
||
<lang go>package main |
<lang go>package main |