Minimum primes

From Rosetta Code
Revision as of 18:01, 27 October 2021 by Thundergnat (talk | contribs) (→‎{{header|Raku}}: Add a Raku example)
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.



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...