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) |