Multifactorial: Difference between revisions

→‎{{header|REXX}}: added the REXX language. -- ~~~~
m (→‎{{header|Perl}}: Authorship is tracked via history.)
(→‎{{header|REXX}}: added the REXX language. -- ~~~~)
Line 330:
5: [1, 2, 3, 4, 5, 6, 14, 24, 36, 50]
>>> </lang>
 
=={{header|REXX}}==
<lang rexx>/*REXX program to calculate the K-fact (multifactorial) of non-neg ints.*/
parse arg num deg . /*allow user to specify num & deg*/
if num=='' | num==',' then num=12 /*Not specified? Then use default*/
if deg=='' | deg==',' then deg=10 /* " " " " " */
w=length(num)
 
do d=1 to deg /*the degree of factorialization.*/
_= /*the list of factorials so far. */
do f=1 to num
_=_ Kfact(f,d) /*build a list of factorials. */
end /*f*/ /*(above) D can be omitted. */
 
say 'degree' right(d,w)':' _ /*display the list of factorials.*/
end /*d*/
exit /*stick a fork in it, we're done.*/
/*──────────────────────────────────KFACT subroutine────────────────────*/
Kfact: procedure; parse arg x,k; !=1
do j=x to 2 by -word(k 1, 1)
!=!*j
end /*j*/
return !</lang>
'''output''' when using the default input:
<pre style="overflow:scroll">
degree 1: 1 2 6 24 120 720 5040 40320 362880 3628800 39916800 479001600
degree 2: 1 2 3 8 15 48 105 384 945 3840 10395 46080
degree 3: 1 2 3 4 10 18 28 80 162 280 880 1944
degree 4: 1 2 3 4 5 12 21 32 45 120 231 384
degree 5: 1 2 3 4 5 6 14 24 36 50 66 168
degree 6: 1 2 3 4 5 6 7 16 27 40 55 72
degree 7: 1 2 3 4 5 6 7 8 18 30 44 60
degree 8: 1 2 3 4 5 6 7 8 9 20 33 48
degree 9: 1 2 3 4 5 6 7 8 9 10 22 36
degree 10: 1 2 3 4 5 6 7 8 9 10 11 24
</pre>
 
=={{header|Tcl}}==