Cuban primes: Difference between revisions
Content added Content deleted
m (Phix/mpfr) |
|||
Line 919: | Line 919: | ||
The 100,000th cuban prime is 1,792,617,147,127 |
The 100,000th cuban prime is 1,792,617,147,127 |
||
</pre> |
</pre> |
||
=={{header|Groovy}}== |
|||
{{trans|Java}} |
|||
<lang groovy>class CubanPrimes { |
|||
private static int MAX = 1_400_000 |
|||
private static boolean[] primes = new boolean[MAX] |
|||
static void main(String[] args) { |
|||
preCompute() |
|||
cubanPrime(200, true) |
|||
for (int i = 1; i <= 5; i++) { |
|||
int max = (int) Math.pow(10, i) |
|||
printf("%,d-th cuban prime = %,d%n", max, cubanPrime(max, false)) |
|||
} |
|||
} |
|||
private static long cubanPrime(int n, boolean display) { |
|||
int count = 0 |
|||
long result = 0 |
|||
for (long i = 0; count < n; i++) { |
|||
long test = 1l + 3 * i * (i + 1) |
|||
if (isPrime(test)) { |
|||
count++ |
|||
result = test |
|||
if (display) { |
|||
printf("%10s%s", String.format("%,d", test), count % 10 == 0 ? "\n" : "") |
|||
} |
|||
} |
|||
} |
|||
return result |
|||
} |
|||
private static boolean isPrime(long n) { |
|||
if (n < MAX) { |
|||
return primes[(int) n] |
|||
} |
|||
int max = (int) Math.sqrt(n) |
|||
for (int i = 3; i <= max; i++) { |
|||
if (primes[i] && n % i == 0) { |
|||
return false |
|||
} |
|||
} |
|||
return true |
|||
} |
|||
private static final void preCompute() { |
|||
// primes |
|||
for (int i = 2; i < MAX; i++) { |
|||
primes[i] = true |
|||
} |
|||
for (int i = 2; i < MAX; i++) { |
|||
if (primes[i]) { |
|||
for (int j = 2 * i; j < MAX; j += i) { |
|||
primes[j] = false |
|||
} |
|||
} |
|||
} |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre> 7 19 37 61 127 271 331 397 547 631 |
|||
919 1,657 1,801 1,951 2,269 2,437 2,791 3,169 3,571 4,219 |
|||
4,447 5,167 5,419 6,211 7,057 7,351 8,269 9,241 10,267 11,719 |
|||
12,097 13,267 13,669 16,651 19,441 19,927 22,447 23,497 24,571 25,117 |
|||
26,227 27,361 33,391 35,317 42,841 45,757 47,251 49,537 50,311 55,897 |
|||
59,221 60,919 65,269 70,687 73,477 74,419 75,367 81,181 82,171 87,211 |
|||
88,237 89,269 92,401 96,661 102,121 103,231 104,347 110,017 112,327 114,661 |
|||
115,837 126,691 129,169 131,671 135,469 140,617 144,541 145,861 151,201 155,269 |
|||
163,567 169,219 170,647 176,419 180,811 189,757 200,467 202,021 213,067 231,019 |
|||
234,361 241,117 246,247 251,431 260,191 263,737 267,307 276,337 279,991 283,669 |
|||
285,517 292,969 296,731 298,621 310,087 329,677 333,667 337,681 347,821 351,919 |
|||
360,187 368,551 372,769 374,887 377,011 383,419 387,721 398,581 407,377 423,001 |
|||
436,627 452,797 459,817 476,407 478,801 493,291 522,919 527,941 553,411 574,219 |
|||
584,767 590,077 592,741 595,411 603,457 608,851 611,557 619,711 627,919 650,071 |
|||
658,477 666,937 689,761 692,641 698,419 707,131 733,591 742,519 760,537 769,627 |
|||
772,669 784,897 791,047 812,761 825,301 837,937 847,477 863,497 879,667 886,177 |
|||
895,987 909,151 915,769 925,741 929,077 932,419 939,121 952,597 972,991 976,411 |
|||
986,707 990,151 997,057 1,021,417 1,024,921 1,035,469 1,074,607 1,085,407 1,110,817 1,114,471 |
|||
1,125,469 1,155,061 1,177,507 1,181,269 1,215,397 1,253,887 1,281,187 1,285,111 1,324,681 1,328,671 |
|||
1,372,957 1,409,731 1,422,097 1,426,231 1,442,827 1,451,161 1,480,519 1,484,737 1,527,247 1,570,357 |
|||
10-th cuban prime = 631 |
|||
100-th cuban prime = 283,669 |
|||
1,000-th cuban prime = 65,524,807 |
|||
10,000-th cuban prime = 11,712,188,419 |
|||
100,000-th cuban prime = 1,792,617,147,127</pre> |
|||
=={{header|Haskell}}== |
=={{header|Haskell}}== |
||
Uses Data.Numbers.Primes library: http://hackage.haskell.org/package/primes-0.2.1.0/docs/Data-Numbers-Primes.html<br> |
Uses Data.Numbers.Primes library: http://hackage.haskell.org/package/primes-0.2.1.0/docs/Data-Numbers-Primes.html<br> |