un peu plus d'aide pour Eratosthene

This commit is contained in:
2026-01-26 10:09:53 +01:00
parent 657bfa1cba
commit dae058c2d4
3 changed files with 82 additions and 2 deletions

View File

@@ -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;
}
```