time :
+time :
+ +diff --git a/R4.01_R4.A.10/td_tp/tp1/README.md b/R4.01_R4.A.10/td_tp/tp1/README.md index 2855721..8339b01 100644 --- a/R4.01_R4.A.10/td_tp/tp1/README.md +++ b/R4.01_R4.A.10/td_tp/tp1/README.md @@ -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; } - +``` diff --git a/R4.01_R4.A.10/td_tp/tp1/src/eratosthene/eratosthene.html b/R4.01_R4.A.10/td_tp/tp1/src/eratosthene/eratosthene.html new file mode 100644 index 0000000..fa89a09 --- /dev/null +++ b/R4.01_R4.A.10/td_tp/tp1/src/eratosthene/eratosthene.html @@ -0,0 +1,40 @@ + + +
+ +time :
+time :
+ +