un peu plus d'aide pour Eratosthene
This commit is contained in:
@@ -172,7 +172,24 @@ En utilisant les fonctions/méthodes `forEach, filter, map, reduce, some, every,
|
||||
Ecrire une fonction qui calcule tous les nombres premiers inférieurs à une valeur entière `n` donnée,
|
||||
en utilisant le [crible d'Erastosthène](https://fr.wikipedia.org/wiki/Crible_d%27%C3%89ratosth%C3%A8ne).
|
||||
|
||||
Vous pourrez compléter le code suivant, et le tester :
|
||||
Le version du crible est volontairement "mal écrite" en terme de performance :
|
||||
|
||||
```js
|
||||
let eratosthene1 = n => {
|
||||
let numbers = Array.from({length : n - 2}, (v,k) => k + 2);
|
||||
let p ,primes = [];
|
||||
|
||||
while(numbers.length){
|
||||
[p,...numbers] = numbers;
|
||||
numbers = numbers.filter( k => k%p != 0);
|
||||
primes = [...primes,p];
|
||||
}
|
||||
return primes;
|
||||
}
|
||||
```
|
||||
|
||||
1. Expliquez précisément ce code. Testez et dites pourquoi qu'il n'est pas efficace.
|
||||
2. Écrivez une version plus efficace et comparer les temps de calcul. Vous pourrez compléter le code suivant :
|
||||
|
||||
```js
|
||||
let eratosthene = n => {
|
||||
@@ -187,4 +204,4 @@ let eratosthene = n => {
|
||||
}
|
||||
return primes;
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user