Files
freeCodeCamp/curriculum/challenges/spanish/08-coding-interview-prep/project-euler/problem-5-smallest-multiple.spanish.md
2018-10-08 13:51:51 -04:00

81 lines
1.9 KiB
Markdown

---
id: 5
localeTitle: 5900f3711000cf542c50fe84
challengeType: 5
title: 'Problem 5: Smallest multiple'
---
## Description
<section id='description'>
2520 es el número más pequeño que se puede dividir 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 <code>n</code> ?
</section>
## Instructions
<section id='instructions'>
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: <code>smallestMult(5)</code> debe devolver 60.
testString: 'assert.strictEqual(smallestMult(5), 60, "<code>smallestMult(5)</code> should return 60.");'
- text: <code>smallestMult(7)</code> debe devolver 420.
testString: 'assert.strictEqual(smallestMult(7), 420, "<code>smallestMult(7)</code> should return 420.");'
- text: <code>smallestMult(10)</code> debe devolver 2520.
testString: 'assert.strictEqual(smallestMult(10), 2520, "<code>smallestMult(10)</code> should return 2520.");'
- text: <code>smallestMult(13)</code> debe devolver 360360.
testString: 'assert.strictEqual(smallestMult(13), 360360, "<code>smallestMult(13)</code> should return 360360.");'
- text: <code>smallestMult(20)</code> debe devolver 232792560.
testString: 'assert.strictEqual(smallestMult(20), 232792560, "<code>smallestMult(20)</code> should return 232792560.");'
```
</section>
## Challenge Seed
<section id='challengeSeed'>
<div id='js-seed'>
```js
function smallestMult(n) {
// Good luck!
return true;
}
smallestMult(20);
```
</div>
</section>
## Solution
<section id='solution'>
```js
function smallestMult(n){
function gcd(a, b) {
return b === 0 ? a : gcd(b, a%b); // Euclidean algorithm
}
function lcm(a, b) {
return a * b / gcd(a, b);
}
var result = 1;
for(var i = 2; i <= n; i++) {
result = lcm(result, i);
}
return result;
}
```
</section>