Problema - Smallest multiple
2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?
2520 es el número más pequeño que puede ser dividido por cada uno de los números del 1 al 10 sin ningún resto.
¿Cuál es el número positivo más pequeño que es divisible por todos los números del 1 al 20?
Solución
require(numbers)
mLCM(1:20)
[1] 232792560
Notas
Usamos la función mLCM para calcular el mínimo común múltiplo de los números del 1 al 20.
Otra alternativa manual sería calcular los factores primos de cada uno de los números. Después inspeccionamos visualmente los factores comunes de todos ellos.
x <- matrix(1:20)
apply(x, 1, primeFactors)
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 2 2
[[5]]
[1] 5
[[6]]
[1] 2 3
[[7]]
[1] 7
[[8]]
[1] 2 2 2
[[9]]
[1] 3 3
[[10]]
[1] 2 5
[[11]]
[1] 11
[[12]]
[1] 2 2 3
[[13]]
[1] 13
[[14]]
[1] 2 7
[[15]]
[1] 3 5
[[16]]
[1] 2 2 2 2
[[17]]
[1] 17
[[18]]
[1] 2 3 3
[[19]]
[1] 19
[[20]]
[1] 2 2 5
Los factores serían: (2^4)*(3^2)*5*7*11*13*17*19 = 232792560Para calcular los factores primos únicos
unique(unlist(apply(x, 1, primeFactors)))
[1] 1 2 3 5 7 11 13 17 19
Referencias
No hay comentarios:
Publicar un comentario