Penta-power prime seeds: Difference between revisions
Content added Content deleted
(New post.) |
(Add Scala implementation) |
||
Line 976: | Line 976: | ||
644399 770531 781109 782781 923405 1121189 1158975 1483691 1490475 1512321 |
644399 770531 781109 782781 923405 1121189 1158975 1483691 1490475 1512321 |
||
</pre> |
</pre> |
||
=={{header|Scala}}== |
|||
{{trans|Java}} |
|||
<syntaxhighlight lang="Scala"> |
|||
import scala.annotation.tailrec |
|||
import java.math.BigInteger |
|||
object PentaPowerPrimeSeeds extends App { |
|||
println("The first 30 penta-power prime seeds:") |
|||
val first30 = Stream.from(1, 2).filter(isPentaPowerPrimeSeed).take(30) |
|||
first30.zipWithIndex.foreach { case (seed, index) => |
|||
print(f"$seed%7d${if ((index + 1) % 6 == 0) "\n" else " "}") |
|||
} |
|||
val firstAbove10M = Stream.from(1, 2).filter(isPentaPowerPrimeSeed).find(_ > 10000000) |
|||
firstAbove10M match { |
|||
case Some(seed) => println(s"\nThe first penta-power prime seed greater than 10,000,000 is $seed") |
|||
case None => println("No penta-power prime seed greater than 10,000,000 was found.") |
|||
} |
|||
def isPentaPowerPrimeSeed(number: Int): Boolean = { |
|||
val bigIntNumber = BigInteger.valueOf(number) |
|||
val bigIntNumberPlusOne = bigIntNumber.add(BigInteger.ONE) |
|||
(0 to 4).forall { i => |
|||
bigIntNumber.pow(i).add(bigIntNumberPlusOne).isProbablePrime(15) |
|||
} |
|||
} |
|||
} |
|||
</syntaxhighlight> |
|||
{{out}} |
|||
<pre> |
|||
The first 30 penta-power prime seeds: |
|||
1 5 69 1665 2129 25739 |
|||
29631 62321 77685 80535 82655 126489 |
|||
207285 211091 234359 256719 366675 407945 |
|||
414099 628859 644399 770531 781109 782781 |
|||
923405 1121189 1158975 1483691 1490475 1512321 |
|||
The first penta-power prime seed greater than 10,000,000 is 10347035 |
|||
</pre> |
|||
=={{header|Wren}}== |
=={{header|Wren}}== |