Minimum primes: Difference between revisions

From Rosetta Code
Content added Content deleted
(Added Wren)
(Added Go)
Line 14: Line 14:
# Show Primes on this page.
# Show Primes on this page.
<br><br>
<br><br>

=={{header|Go}}==
{{trans|Wren}}
{{libheader|Go-rcu}}
<lang go>package main

import (
"fmt"
"rcu"
)

func main() {
numbers1 := [5]int{5, 45, 23, 21, 67}
numbers2 := [5]int{43, 22, 78, 46, 38}
numbers3 := [5]int{9, 98, 12, 54, 53}
primes := [5]int{}
for n := 0; n < 5; n++ {
max := rcu.Max(rcu.Max(numbers1[n], numbers2[n]), numbers3[n])
if max % 2 == 0 {
max++
}
for !rcu.IsPrime(max) {
max += 2
}
primes[n] = max
}
fmt.Println(primes)
}</lang>

{{out}}
<pre>
[43 101 79 59 67]
</pre>


=={{header|Julia}}==
=={{header|Julia}}==
Line 21: Line 54:
</lang>{{out}}
</lang>{{out}}
<pre>[43; 101; 79; 59; 67;;]</pre>
<pre>[43; 101; 79; 59; 67;;]</pre>



=={{header|Raku}}==
=={{header|Raku}}==

Revision as of 18:17, 27 October 2021

Minimum primes is a draft programming task. It is not yet considered ready to be promoted as a complete task, for reasons that should be found in its talk page.
Task


Given three lists:

  • Numbers1 = [5,45,23,21,67]
  • Numbers2 = [43,22,78,46,38]
  • Numbers3 = [9,98,12,54,53]


then:

  1. Select the maximum (max) of Numbers[n], Numbers2[n] and Numbers3[n], where n <= 5 (one based).
  2. Select minPrime for that minPrime is a minimal prime and minPrime >= max
  3. Add minPrime to a new list (Primes)
  4. Show Primes on this page.



Go

Translation of: Wren
Library: Go-rcu

<lang go>package main

import (

   "fmt"
   "rcu"

)

func main() {

   numbers1 := [5]int{5, 45, 23, 21, 67}
   numbers2 := [5]int{43, 22, 78, 46, 38}
   numbers3 := [5]int{9, 98, 12, 54, 53}
   primes := [5]int{}
   for n := 0; n < 5; n++ {
       max := rcu.Max(rcu.Max(numbers1[n], numbers2[n]), numbers3[n])
       if max % 2 == 0 {
           max++
       }
       for !rcu.IsPrime(max) {
           max += 2
       }
       primes[n] = max
   }
   fmt.Println(primes)

}</lang>

Output:
[43 101 79 59 67]

Julia

<lang julia>using Primes

println(nextprime.(maximum(hcat([5,45,23,21,67], [43,22,78,46,38], [9,98,12,54,53]), dims=2)))

</lang>

Output:
[43; 101; 79; 59; 67;;]

Raku

Seems kind of pointless to specify a maximum of 5 terms when there are only 5 elements in each list but... ¯\_(ツ)_/¯

<lang perl6>say ([Zmax] <5 45 23 21 67>, <43 22 78 46 38>, <9 98 12 54 53>)».&next-prime[^5];

sub next-prime { ($^m..*).first: &is-prime }</lang>

Output:
(43 101 79 59 67)


Ring

<lang ring> load "stdlib.ring" see "working..." + nl

Primes = [] Numbers1 = [5,45,23,21,67] Numbers2 = [43,22,78,46,38] Numbers3 = [9,98,12,54,53]

for n = 1 to len(Numbers1)

   Temp = []
   add(Temp,Numbers1[n])
   add(Temp,Numbers2[n])
   add(Temp,Numbers3[n])
   max = max(Temp)
   max--
   while true 
         max++
         if isprime(max) 
            exit
         ok
   end
   add(Primes,max) 

next

see "Minimum primes = " see showArray(Primes) see nl + "done..." + nl

func showArray(array)

    txt = ""
    see "["
    for n = 1 to len(array)
        txt = txt + array[n] + ","
    next
    txt = left(txt,len(txt)-1)
    txt = txt + "]"
    see txt

</lang>

Output:
working...
Minimum primes = [43,101,79,59,67]
done...

Wren

Library: Wren-math

<lang ecmascript>import "./math" for Int

var numbers1 = [ 5, 45, 23, 21, 67] var numbers2 = [43, 22, 78, 46, 38] var numbers3 = [ 9, 98, 12, 54, 53] var primes = List.filled(5, 0) for (n in 0..4) {

   var max = numbers1[n].max(numbers2[n]).max(numbers3[n])
   if (max % 2 == 0) max = max + 1
   while(!Int.isPrime(max)) max = max + 2
   primes[n] = max

} System.print(primes)</lang>

Output:
[43, 101, 79, 59, 67]