Jump to content

Jordan-Pólya numbers: Difference between revisions

J draft
m (→‎Version2: typo)
(J draft)
Line 22:
 
__TOC__
 
=={{header|J}}==
<syntaxhighlight lang=J>P=: p:i.100x
F=: !P
 
jpfct=: {{ 2}.!x:i.>.!inv 1+y }}
jpprm=: P{.~F I. 1+]
 
isjp=: {{
if. 2>y do. y
elseif. 0 < #(q:y)-.jpprm y do. 0
else. +./isjp(#~ ] = <.) (%jpfct) y
end.
}}"0
 
showjp=: {{
if. 2>y do. i.0 return. end.
F=. f{~1 i:~b #inv isjp Y#~b=. (]=<.) Y=. y%f=. jpfct y
F,showjp y%F
}}</syntaxhighlight>
 
Task:
<syntaxhighlight lang=J> 5 10$I.isjp i.10000
1 2 4 6 8 12 16 24 32 36
48 64 72 96 120 128 144 192 216 240
256 288 384 432 480 512 576 720 768 864
960 1024 1152 1296 1440 1536 1728 1920 2048 2304
2592 2880 3072 3456 3840 4096 4320 4608 5040 5184
<:^:(0=isjp)^:_]1e8
99532800
showjp 99532800
720 720 24 2 2 2</syntaxhighlight>
 
Note that jp factorizations are not necessarily unique. For example, <tt>120 120 6 6 6 2 2 2 2 2</tt> would also be a jp factorization of <tt>99532800</tt>.
 
=={{header|jq}}==
6,962

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.