Prime decomposition: Difference between revisions

(→‎optimized more: ooRexx conformance ad correct isqrt function)
(2 intermediate revisions by 2 users not shown)
Line 1,677:
1232126 ⟨ 2 7 17 31 167 ⟩
┘</syntaxhighlight>
 
=={{header|Bruijn}}==
{{trans|Haskell}}
<syntaxhighlight lang="bruijn">
:import std/Combinator .
:import std/List .
:import std/Math .
 
factors \divs primes
divs y [[&[[&[[3 ⋅ 3 >? 4 case-1 (=?0 case-2 case-3)]] (quot-rem 2 1)]]]]
case-1 4 >? (+1) {}4 empty
case-2 3 : (5 1 (3 : 2))
case-3 5 4 2
 
main [factors <$> ({ (+42) → (+50) })]
</syntaxhighlight>
{{out}}
<code>
?> {{2t, 3t, 7t}, {43t}, {2t, 2t, 11t}, {3t, 3t, 5t}, {2t, 23t}, {47t}, {2t, 2t, 2t, 2t, 3t}, {7t, 7t}, {2t, 5t, 5t}}
</code>
 
=={{header|Burlesque}}==
Line 4,616 ⟶ 4,636:
$prime
}
"$(prime-decomposition 12)"
"$(prime-decomposition 100)"
</syntaxhighlight>
<b>Output:</b>
Line 4,624 ⟶ 4,644:
2 2 5 5
</pre>
Alternative version, significantly faster with big numbers
<syntaxhighlight lang="powershell">
function prime-decomposition ($n) {
$values = [System.Collections.Generic.List[string]]::new()
while ((($n % 2) -eq 0) -and ($n -gt 2)) {
$values.Add(2)
$n /= 2
}
for ($i = 3; $n -ge ($i * $i); $i += 2) {
if (($n % $i) -eq 0){
$values.Add($i)
$n /= $i
$i -= 2
}
}
$values.Add($n)
return $values
}
"$(prime-decomposition 1000000)"
</syntaxhighlight>
 
=={{header|Prolog}}==
Line 5,405 ⟶ 5,445:
 
<pre style="font-size:75%>
 
3 (1) prime factors: [prime] 3
75 (1) prime factors: [prime] 75
15 9 (2) prime factors: 3 53
3117 (1) prime factors: [prime] 3117
6333 (32) prime factors: 3 3 711
127 65 (12) prime factors: [prime] 127 5 13
255129 (32) prime factors: 3 5 1743
511257 (21) prime factors: [prime] 7 73257
1023 513 (34) prime factors: 3 113 3 3119
20471025 (23) prime factors: 235 895 41
40952049 (52) prime factors: 3 3 5 7 13683
81914097 (12) prime factors: [prime] 8191 17 241
16383 8193 (32) prime factors: 3 43 1272731
3276716385 (3) prime factors: 75 3129 151113
6553532769 (4) prime factors: 3 53 1711 257331
131071 65537 (1) prime factors: [prime] 13107165537
262143131073 (62) prime factors: 3 3 3 7 19 7343691
524287262145 (14) prime factors: [prime] 524287 5 13 37 109
1048575 524289 (62) prime factors: 3 5 5 11 31 41174763
20971511048577 (42) prime factors: 717 7 127 33761681
41943032097153 (4) prime factors: 3 233 8943 6835419
83886074194305 (23) prime factors: 475 178481397 2113
16777215 8388609 (72) prime factors: 3 3 5 7 13 17 2412796203
3355443116777217 (3) prime factors: 3197 601257 1801673
6710886333554433 (34) prime factors: 3 273111 251 81914051
134217727 67108865 (34) prime factors: 75 53 73157 2626571613
268435455134217729 (6) prime factors: 3 53 293 433 11319 12787211
536870911268435457 (32) prime factors: 23317 1103 208915790321
1073741823 536870913 (73) prime factors: 3 3 7 11 31 15159 3313033169
21474836471073741825 (16) prime factors: [prime] 2147483647 5 5 13 41 61 1321
42949672952147483649 (52) prime factors: 3 5 17 257 65537715827883
85899345914294967297 (42) prime factors: 7641 23 89 5994796700417
17179869183 8589934593 (35) prime factors: 3 436913 67 683 13107120857
3435973836717179869185 (4) prime factors: 315 71137 127953 12292126317
6871947673534359738369 (105) prime factors: 3 3 3 5 7 13 1911 3743 73281 10986171
137438953471 68719476737 (24) prime factors: 22317 241 433 61631817738737
274877906943137438953473 (3) prime factors: 3 1747631777 52428725781083
549755813887274877906945 (4) prime factors: 75 79229 8191457 121369525313
1099511627775 549755813889 (84) prime factors: 3 5 5 11 17 313 412731 6168122366891
21990232555511099511627777 (2) prime factors: 13367257 1645113534278255361
43980465111032199023255553 (83) prime factors: 3 3 7 7 43 127 33783 54198831418697
87960930222074398046511105 (36) prime factors: 4315 971913 209986329 113 1429 14449
17592186044415 8796093022209 (72) prime factors: 3 5 23 89 397 683 21132932031007403
3518437208883117592186044417 (63) prime factors: 717 31353 73 151 631 233112931542417
7036874417766335184372088833 (47) prime factors: 3 473 3 11 19 178481331 279620318837001
140737488355327 70368744177665 (35) prime factors: 23515 277 1013 45131657 1326452930269
281474976710655140737488355329 (103) prime factors: 3 3 5 7 13 17 97 241 257283 673165768537521
562949953421311281474976710657 (23) prime factors: 127193 443267679859365537 22253377
1125899906842623 562949953421313 (73) prime factors: 3 11 31 251 601 180143 40514363953127297
1125899906842625 (7) prime factors: 5 5 5 41 101 8101 268501
 
85 primes found.
</pre>
 
1

edit