Smallest multiple: Difference between revisions

(Smallest multiple in various BASIC dialents (BASIC256, PureBasic and True BASIC))
Line 756:
2,000: 151,117,794,877,444,...,415,805,463,680,000 (867 digits)
</pre>
 
=={{header|Picat}}==
===lcm/2===
<code>lcm/2</code> is defined as:
<lang Picat>lcm(X,Y) = X*Y//gcd(X,Y).</lang>
 
===Iteration===
<lang Picat>smallest_multiple_range1(N) = A =>
A = 1,
foreach(E in 2..N)
A := lcm(A,E)
end.</lang>
 
===fold/3===
<lang Picat>smallest_multiple_range2(N) = fold(lcm, 1, 2..N).</lang>
 
===reduce/2===
<lang Picat>smallest_multiple_range3(N) = reduce(lcm, 2..N).</lang>
 
 
===Testing===
Of the three implementations the <code>fold/3</code> approach is slightly faster than the other two.
<lang Picat>main =>
foreach(N in [10,20,200,2000])
println(N=smallest_multiple_range2(N))
end.</lang>
 
{{out}}
<pre>10 = 2520
20 = 232792560
200 = 337293588832926264639465766794841407432394382785157234228847021917234018060677390066992000
2000 = 151117794877444315307536308337572822173736308853579339903227904473000476322347234655122160866668946941993951014270933512030194957221371956828843521568082173786251242333157830450435623211664308500316844478617809101158220672108895053508829266120497031742749376045929890296052805527212315382805219353316270742572401962035464878235703759464796806075131056520079836955770415021318508272982103736658633390411347759000563271226062182345964184167346918225243856348794013355418404695826256911622054015423611375261945905974225257659010379414787547681984112941581325198396634685659217861208771400322507388161967513719166366839894214040787733471287845629833993885413462225294548785581641804620417256563685280586511301918399010451347815776570842790738545306707750937624267501103840324470083425714138183905657667736579430274197734179172691637931540695631396056193786415805463680000</pre>
 
=={{header|Python}}==
495

edits