Collect and sort square numbers in ascending order from three lists: Difference between revisions
Line 20: | Line 20: | ||
println(squares) |
println(squares) |
||
</lang> |
</lang> |
||
=={{header|Phix}}== |
|||
<!--<lang Phix>(phixonline)--> |
|||
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span> |
|||
<span style="color: #008080;">procedure</span> <span style="color: #000000;">squares</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">lists</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #004080;">sequence</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sort</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">join</span><span style="color: #0000FF;">(</span><span style="color: #000000;">lists</span><span style="color: #0000FF;">)),</span> <span style="color: #000000;">sq</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">1</span><span style="color: #0000FF;">}</span> |
|||
<span style="color: #008080;">while</span> <span style="color: #000000;">res</span><span style="color: #0000FF;">[$]></span><span style="color: #000000;">sq</span><span style="color: #0000FF;">[$]</span> <span style="color: #008080;">do</span> <span style="color: #000000;">sq</span> <span style="color: #0000FF;">&=</span> <span style="color: #7060A8;">power</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">sq</span><span style="color: #0000FF;">)+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">end</span> <span style="color: #008080;">while</span> |
|||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">filter</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"in"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">sq</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Added:%,d, Sorted:%V\n"</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">sum</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">),</span><span style="color: #000000;">res</span><span style="color: #0000FF;">})</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span> |
|||
<span style="color: #000000;">squares</span><span style="color: #0000FF;">({{</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">4</span><span style="color: #0000FF;">,</span><span style="color: #000000;">34</span><span style="color: #0000FF;">,</span><span style="color: #000000;">25</span><span style="color: #0000FF;">,</span><span style="color: #000000;">9</span><span style="color: #0000FF;">,</span><span style="color: #000000;">12</span><span style="color: #0000FF;">,</span><span style="color: #000000;">36</span><span style="color: #0000FF;">,</span><span style="color: #000000;">56</span><span style="color: #0000FF;">,</span><span style="color: #000000;">36</span><span style="color: #0000FF;">},</span> |
|||
<span style="color: #0000FF;">{</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">8</span><span style="color: #0000FF;">,</span><span style="color: #000000;">81</span><span style="color: #0000FF;">,</span><span style="color: #000000;">169</span><span style="color: #0000FF;">,</span><span style="color: #000000;">34</span><span style="color: #0000FF;">,</span><span style="color: #000000;">55</span><span style="color: #0000FF;">,</span><span style="color: #000000;">76</span><span style="color: #0000FF;">,</span><span style="color: #000000;">49</span><span style="color: #0000FF;">,</span><span style="color: #000000;">7</span><span style="color: #0000FF;">},</span> |
|||
<span style="color: #0000FF;">{</span><span style="color: #000000;">75</span><span style="color: #0000FF;">,</span><span style="color: #000000;">121</span><span style="color: #0000FF;">,</span><span style="color: #000000;">75</span><span style="color: #0000FF;">,</span><span style="color: #000000;">144</span><span style="color: #0000FF;">,</span><span style="color: #000000;">35</span><span style="color: #0000FF;">,</span><span style="color: #000000;">16</span><span style="color: #0000FF;">,</span><span style="color: #000000;">46</span><span style="color: #0000FF;">,</span><span style="color: #000000;">35</span><span style="color: #0000FF;">}})</span> |
|||
<!--</lang>--> |
|||
{{out}} |
|||
<pre> |
|||
Added:690, Sorted:{4,9,16,25,36,36,49,81,121,144,169} |
|||
</pre> |
|||
=={{header|Raku}}== |
=={{header|Raku}}== |
Revision as of 21:37, 10 December 2021
- Task
Add and sort suare numbers in ascending order from three lists.
list[1] = [3,4,34,25,9,12,36,56,36]
list[2] = [2,8,81,169,34,55,76,49,7]
list[3] = [75,121,75,144,35,16,46,35]
Julia
vcat is list "addition" in Julia. <lang julia>lists = [
[3,4,34,25,9,12,36,56,36], [2,8,81,169,34,55,76,49,7], [75,121,75,144,35,16,46,35]
]
squares = reduce(vcat, [[s for s in list if isqrt(s)^2 == s] for list in lists]) sort!(squares) println(squares) </lang>
Phix
with javascript_semantics procedure squares(sequence lists) sequence res = sort(join(lists)), sq = {1} while res[$]>sq[$] do sq &= power(length(sq)+1,2) end while res = filter(res,"in",sq) printf(1,"Added:%,d, Sorted:%V\n",{sum(res),res}) end procedure squares({{3,4,34,25,9,12,36,56,36}, {2,8,81,169,34,55,76,49,7}, {75,121,75,144,35,16,46,35}})
- Output:
Added:690, Sorted:{4,9,16,25,36,36,49,81,121,144,169}
Raku
<lang perl6>my $s = cache sort ( my $l = ( cache flat
[3,4,34,25,9,12,36,56,36], [2,8,81,169,34,55,76,49,7], [75,121,75,144,35,16,46,35]
)).grep: * ∈ cache {$++²}…*>$l.max;
put 'Added - Sorted'; put ' ' ~ $s.sum ~ ' ' ~ $s.gist;</lang>
Added - Sorted 690 (4 9 16 25 36 36 49 81 121 144 169)
Ring
<lang ring> load "stdlib.ring"
see "working..." + nl list = list(3) list[1] = [3,4,34,25,9,12,36,56,36] list[2] = [2,8,81,169,34,55,76,49,7] list[3] = [75,121,75,144,35,16,46,35] Primes = []
for n = 1 to 3
for m = 1 to len(list[n]) if issquare(list[n][m]) add(Primes,list[n][m]) ok next
next
Primes = sort(Primes) showArray(Primes)
see nl + "done..." + nl
func issquare(x)
for n = 1 to sqrt(x) if x = pow(n,2) return 1 ok next return 0
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... [4,9,16,25,36,36,49,81,121,144,169] done...
Wren
<lang ecmascript>var lists = [
[3,4,34,25,9,12,36,56,36], [2,8,81,169,34,55,76,49,7], [75,121,75,144,35,16,46,35]
]
var squares = [] for (list in lists) {
for (e in list) { var s = e.sqrt.floor if (s * s == e) squares.add(e) }
} squares.sort() System.print(squares)</lang>
- Output:
[4, 9, 16, 25, 36, 36, 49, 81, 121, 144, 169]