Smallest multiple: Difference between revisions
Content added Content deleted
(Added Wren) |
(Added Go) |
||
Line 6: | Line 6: | ||
<br>2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. |
<br>2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder. |
||
<br>What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? |
<br>What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? |
||
=={{header|Go}}== |
|||
{{trans|Wren}} |
|||
{{libheader|Go-rcu}} |
|||
<lang go>package main |
|||
import ( |
|||
"fmt" |
|||
"math/big" |
|||
"rcu" |
|||
) |
|||
func lcm(n int) *big.Int { |
|||
lcm := big.NewInt(1) |
|||
t := new(big.Int) |
|||
for _, p := range rcu.Primes(n) { |
|||
f := p |
|||
for f*p <= n { |
|||
f *= p |
|||
} |
|||
lcm.Mul(lcm, t.SetUint64(uint64(f))) |
|||
} |
|||
return lcm |
|||
} |
|||
func main() { |
|||
fmt.Println("The LCMs of the numbers 1 to N inclusive is:") |
|||
for _, i := range []int{10, 20, 200, 2000} { |
|||
fmt.Printf("%4d: %s\n", i, lcm(i)) |
|||
} |
|||
}</lang> |
|||
{{out}} |
|||
<pre> |
|||
The LCMs of the numbers 1 to N inclusive is: |
|||
10: 2520 |
|||
20: 232792560 |
|||
200: 337293588832926264639465766794841407432394382785157234228847021917234018060677390066992000 |
|||
2000: 151117794877444315307536308337572822173736308853579339903227904473000476322347234655122160866668946941993951014270933512030194957221371956828843521568082173786251242333157830450435623211664308500316844478617809101158220672108895053508829266120497031742749376045929890296052805527212315382805219353316270742572401962035464878235703759464796806075131056520079836955770415021318508272982103736658633390411347759000563271226062182345964184167346918225243856348794013355418404695826256911622054015423611375261945905974225257659010379414787547681984112941581325198396634685659217861208771400322507388161967513719166366839894214040787733471287845629833993885413462225294548785581641804620417256563685280586511301918399010451347815776570842790738545306707750937624267501103840324470083425714138183905657667736579430274197734179172691637931540695631396056193786415805463680000 |
|||
</pre> |
|||
=={{header|Pascal}}== |
=={{header|Pascal}}== |
||
Here the simplest way, like Raku, check the highest exponent of every prime in range<BR> |
Here the simplest way, like Raku, check the highest exponent of every prime in range<BR> |
||
Line 50: | Line 90: | ||
232792560 |
232792560 |
||
</pre> |
</pre> |
||
=={{header|Raku}}== |
=={{header|Raku}}== |
||
Exercise with some larger values as well. |
Exercise with some larger values as well. |