45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
---
|
||
title: Smallest multiple
|
||
localeTitle: Наименьшее количество
|
||
---
|
||
## Проблема 5: Наименьшая множественность
|
||
|
||
### Метод:
|
||
|
||
* В этой задаче нам нужно найти LCM от 1 до n чисел.
|
||
* Чтобы найти LCM числа, мы используем следующую формулу:
|
||
* 
|
||
* Чтобы найти GCD (Greatest Common Divisor) из двух чисел, мы используем алгоритм Евклида.
|
||
* Как только мы получим LCM двух чисел, мы можем получить LCM чисел от 1 до n.
|
||
|
||
### Решение:
|
||
|
||
```js
|
||
//LCM of two numbers
|
||
function lcm(a, b){
|
||
return (a*b)/gcd(a, b);
|
||
}
|
||
|
||
//Euclidean recursive algorithm
|
||
function gcd(a, b){
|
||
if (b === 0) return a;
|
||
return gcd(b, a%b);
|
||
}
|
||
|
||
function smallestMult(n){
|
||
let maxLCM = 1;
|
||
|
||
//Getting the LCM in the range
|
||
for (let i = 2; i <= n; i++){
|
||
maxLCM = lcm(maxLCM, i);
|
||
}
|
||
return maxLCM;
|
||
}
|
||
```
|
||
|
||
* [Код запуска](https://repl.it/@ezioda004/Problem-5-Smallest-multiple)
|
||
|
||
### Рекомендации:
|
||
|
||
* [Евклидовой алгоритм](https://en.wikipedia.org/wiki/Euclidean_algorithm)
|
||
* [LCM](https://en.wikipedia.org/wiki/Least_common_multiple) |