Algorithme nombres premiers
Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
-
celiine11
- Membre Naturel
- Messages: 41
- Enregistré le: 01 Oct 2019, 22:57
-
par celiine11 » 13 Nov 2019, 18:04
Bonjour, j'essaie tant bien que mal de faire un algorithme sur le logiciel SCRATCH pour afficher les nombres premiers de 1 a 100 ou de 1 a n (que lon determine) pour illustrer le crible deratostene mais je ny arrive pas..
Quelquun aurait un algorithme qui fonctionne ??
Merci beaucoup !!
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 14:00
-
par fatal_error » 13 Nov 2019, 18:20
bonjour,
je vois que tu es apparemment au lycée,
pourquoi t'embêter avec un truc enfantin et ne pas directement utiliser python comme tous les autres lycéens semblent faire?
la vie est une fête
-
celiine11
- Membre Naturel
- Messages: 41
- Enregistré le: 01 Oct 2019, 22:57
-
par celiine11 » 13 Nov 2019, 18:31
fatal_error a écrit:bonjour,
je vois que tu es apparemment au lycée,
pourquoi t'embêter avec un truc enfantin et ne pas directement utiliser python comme tous les autres lycéens semblent faire?
Bonjour, j'ai mis lycée pour essaye d'avoir un maximum de réponse. Je ne suis pas contre utilise Python mais je trouve cela plus dynamique avec Scratch. Et je ne suis pas du tout douée avec les algorithmes donc que ce sois Scratch ou Python...
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 14:00
-
par fatal_error » 13 Nov 2019, 20:39
ben ça dépend c'est quoi ton but, si t'as regardé soigneusement et t'as choisi scrtach parce que tu voulais faire des jeux ou je sais pas quoi oui ca vaut ptet le coup de focaliser sur scratch
si ton but c'est d'apprendre à programmer, alors non c'est une perte de temps
dans tous les cas je pourrai pas t'aider pour scratch parce qu'il faut apprendre une syntaxe (et si c'était que ça ça irait, mais je trouve pas leur doc ni d'interpréteurs en ligne donc je passe pour ma part)
la vie est une fête
-
celiine11
- Membre Naturel
- Messages: 41
- Enregistré le: 01 Oct 2019, 22:57
-
par celiine11 » 13 Nov 2019, 20:59
fatal_error a écrit:ben ça dépend c'est quoi ton but, si t'as regardé soigneusement et t'as choisi scrtach parce que tu voulais faire des jeux ou je sais pas quoi oui ca vaut ptet le coup de focaliser sur scratch
si ton but c'est d'apprendre à programmer, alors non c'est une perte de temps
dans tous les cas je pourrai pas t'aider pour scratch parce qu'il faut apprendre une syntaxe (et si c'était que ça ça irait, mais je trouve pas leur doc ni d'interpréteurs en ligne donc je passe pour ma part)
D'accord ce n'est pas grave.
En revanche, comme tu es venu a parler de Python, aurais-tu un algorithme sur Python qui permette de faire ça ?
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 14:00
-
par fatal_error » 13 Nov 2019, 21:02
ca peut se faire oui... je vois pas trop le probleme
afficher une grille nxn numérotée de 1 à nxn
rayer tous les multiples de k pour k = 2 à n
la vie est une fête
-
celiine11
- Membre Naturel
- Messages: 41
- Enregistré le: 01 Oct 2019, 22:57
-
par celiine11 » 13 Nov 2019, 21:13
fatal_error a écrit:ca peut se faire oui... je vois pas trop le probleme
afficher une grille nxn numérotée de 1 à nxn
rayer tous les multiples de k pour k = 2 à n
Cela ferait intervenir une matrice ou des listes... complique ...
-
LB2
- Habitué(e)
- Messages: 1504
- Enregistré le: 05 Nov 2017, 18:32
-
par LB2 » 13 Nov 2019, 21:23
Bonjour,
déjà, avant d'implémenter l'algorithme du crible d'Eratosthene sur un langage particulier, il faut se mettre d'accord sur sa syntaxe.
https://fr.wikipedia.org/wiki/Crible_d% ... th%C3%A8neOn peut l'écrire en langage naturel. (Vive l'informatique débranchée!)
Fonction Eratosthène(Limite)
L = liste des entiers de 2 à Limite
Tant que L est non vide
Afficher le premier entier de L
L = liste des entiers de L non multiples du premier
Fin tant que
Fin fonction
Sans recourir aux listes, je pense que c'est possible, mais c'est se compliquer la vie à mon sens.
Pour d'autres versions, et leurs implémentations, voir
http://villemin.gerard.free.fr/Wwwgvmm/ ... atoprg.htm qui est très bien aussi
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 14:00
-
par fatal_error » 13 Nov 2019, 21:43
l'algorithme qu'on apprenait au collège c'était: faire une grille de 1 à 100, effacer tous les multiples de 2, effacer tous les multiples de 3, ...
à la fin il reste plus que les premiers.
Si on prend une liste L=[1,...,100] (initialiser une telle liste c'est trivial)
ya qu'à remplacer les multiples de 2 par 'X'
et ainsi de suite.
Ca doit être accessible non?
faut écrire une boucle pour 2
et écrire une boucle pour k = 2 à 10
la vie est une fête
-
celiine11
- Membre Naturel
- Messages: 41
- Enregistré le: 01 Oct 2019, 22:57
-
par celiine11 » 13 Nov 2019, 22:56
LB2 a écrit:Bonjour,
déjà, avant d'implémenter l'algorithme du crible d'Eratosthene sur un langage particulier, il faut se mettre d'accord sur sa syntaxe.
https://fr.wikipedia.org/wiki/Crible_d% ... th%C3%A8neOn peut l'écrire en langage naturel. (Vive l'informatique débranchée!)
Fonction Eratosthène(Limite)
L = liste des entiers de 2 à Limite
Tant que L est non vide
Afficher le premier entier de L
L = liste des entiers de L non multiples du premier
Fin tant que
Fin fonction
Sans recourir aux listes, je pense que c'est possible, mais c'est se compliquer la vie à mon sens.
Pour d'autres versions, et leurs implémentations, voir
http://villemin.gerard.free.fr/Wwwgvmm/ ... atoprg.htm qui est très bien aussi
Je comprend tout à fait en quoi consiste ce crible, le problème est que je n'arrive pas a le transcrire sous forme d’algorithme pour le faire exécuter sur scratch..
-
celiine11
- Membre Naturel
- Messages: 41
- Enregistré le: 01 Oct 2019, 22:57
-
par celiine11 » 13 Nov 2019, 22:58
fatal_error a écrit:l'algorithme qu'on apprenait au collège c'était: faire une grille de 1 à 100, effacer tous les multiples de 2, effacer tous les multiples de 3, ...
à la fin il reste plus que les premiers.
Si on prend une liste L=[1,...,100] (initialiser une telle liste c'est trivial)
ya qu'à remplacer les multiples de 2 par 'X'
et ainsi de suite.
Ca doit être accessible non?
faut écrire une boucle pour 2
et écrire une boucle pour k = 2 à 10
Effectivement, expliqué comme cela, les choses paraissent facile. Le crible en lui meme est tres facile de compréhension, mais le soucis est le transcrire en algorithme... Faire la liste n'est pas un soucis, c'est pour barrer les multiples ou la ca coince..
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 14:00
-
par fatal_error » 13 Nov 2019, 23:21
le code est self explanatory
un exemple pour marquer les multiples de 2
https://repl.it/repls/GleefulDarlingSynergy- Code: Tout sélectionner
import math
def mark(L, k):
z = k
while z <= len(L):
L[z-1] = 'X'
z += k
return L
n = 5
L = list(range(1, n*n+1))
print(mark(L,2))
sauras tu marquer les restants?
la vie est une fête
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 37 invités