Activité: Multiples et diviseurs avec Scratch
Partie 1
Dans le logiciel Scratch, l’opérateur a modulo b
est le reste de la division euclidienne deaparb. Par exemple, le bloc 12 modulo 5
répond2, car dans la division euclidienne de12 par5, le reste vaut 2. Le programme ci-dessous répond à une question par oui ou par non.
quand est cliqué
demander Entrer un nombre N et attendre mettre NN H à réponse
si N modulo 7 = 0 alors dire Oui
sinon dire Non
1. À quelle question répond le programme ?
2. Que répond le programme si on entre le nombre215? 3. Quel est le plus grand nombre à trois chiffres pour
lequel la réponse sera "Oui" ?
Partie 2
On souhaite maintenant utiliser le logiciel Scratch pour construire la liste des vingt premiers multiples d’un nombre entier naturel choisi.
1. Construire un programme permettant au lutin d’énoncer la liste des vingt premiers multiples de13. Si besoin, n’hésite pas à utiliser un coup de pouce
✌
.2. Si ce n’est pas le cas, adapter le programme pour que le lutin puisse donner ces vingt multiples en une seule fois.
Si besoin, n’hésite pas à utiliser un coup de pouce
✌
.3. Adapter ce programme pour donner la liste des vingt premiers multiples d’un nombreN choisi au lance-
✌
Coup de pouce pour la partie 2 : donner les premiers multiples de 13Comme souvent, il existe plusieurs façons de procéder, mais voici quelques blocs pouvant être utilisés pour créer un programme donnant les vingt premiers multiples de 13 :
répéter fois
. . . . . .
13 × compteur ajouter à compteurcompteur H
. . .
✌
Coup de pouce pour la partie 2 : donner les multiples en une seule foisPour garder en mémoire une vingtaine de multiples, nous pourrions créer une vingtaine de variables. Mais cela peut vite devenir fastidieux.
Nous avons également à notre disposition quelques blocs relatifs aux listes. En voici quelques-uns : ajouter à ma listema liste H élément H de ma listema liste H
supprimer l’élément H de la liste ma listema liste H
longueur de ma listema liste H
. . .
✌
Coup de pouce pour la partie 3On commence par créer une variable « compteur » qui prendra successivement les valeurs 1 ; 2 ; 3 ; . . . et tester des diviseurs potentiels.
On commence par créer une variable « compteur » qui prendra successivement les valeurs 1 ; 2 ; 3 ; . . . et tester des diviseurs potentiels.
On crée également une liste « diviseurs » qui gardera en mémoire les différents diviseurs obtenus.
On crée également une liste « diviseurs » qui gardera en mémoire les différents diviseurs obtenus.
quand est cliqué
supprimer l’élément
Hde la liste diviseurs diviseurs
HOn pense à initialiser la liste des « diviseurs ».
mettre compteur compteur
Hà On pense également à initialiser la variable « compteur ».
demander Quel est le nombre dont tu cherches les diviseurs ? et attendre
répéter jusqu’à > Quelle est la condition d’arrêt ?
si modulo = alors Comment tester un diviseur potentiel ?
Si la condition est vérifiée, c’est que nous avons trouvé un diviseur. Que faire dans ce cas ? Si la condition est vérifiée, c’est que nous avons trouvé un diviseur. Que faire dans ce cas ?
ajouter à
Hdire regroupe regroupe est divisible par pendant 2 seconde(s)
Une proposition de programme pour lister les diviseurs d’un nombre au choix
quand est cliqué
supprimer l’élément toutH de la liste diviseursdiviseurs H mettre compteurcompteur H à 1
demander Quel est le nombre dont tu cherches les diviseurs ? et attendre répéter jusqu’à compteur > réponse
si réponse modulo compteur = 0 alors ajouter compteur à diviseursdiviseurs H
dire regroupe réponse regroupe est divisible par compteur pendant 2 seconde(s)
ajouter à compteurcompteur H 1
dire regroupe regroupe regroupe Le nombre réponse regroupe admet longueur de diviseursdiviseurs H diviseurs pendant 3 seconde(s)
Le programme précédent, avec une détection d’un nombre premier
quand est cliqué
supprimer l’élément toutH de la liste diviseursdiviseurs H mettre compteurcompteur H à 1
demander Quel est le nombre dont tu cherches les diviseurs ? et attendre répéter jusqu’à compteur > réponse
si réponse modulo compteur = 0 alors ajouter compteur à diviseursdiviseurs H
dire regroupe réponse regroupe est divisible par compteur pendant 2 seconde(s)
ajouter à compteurcompteur H 1
dire regroupe regroupe regroupe Le nombre réponse regroupe admet longueur de diviseursdiviseurs H diviseurs pendant 3 seconde(s)