7
6 882 309 est-il divisible
par 7 ? par 21 ?
Fiche Professeur
TS
Spé
Math
Auteurs : Pierre Lapôtre & Raymond Moc
Objet de l’activité : Arithmétique et algorithmique En fait, on se pose la question pour un
entier n1quelconque. Cela donne un exercice d’arithmétique apparemment peu connu autour de
la divisibilité par 7 (mais aussi par 3 et par 21) avec mise en œuvre algorithmique.
Commentaires :
Cette activité est plutôt facile. L’application TICE pourrait être proposée en Première.
Pour savoir si un nombre est divisible par sept, on peut, bien sûr, poser la division ou la faire à la
machine (calculatrice, ordinateur).
La méthode proposée dans la fiche Élève ne nécessite que du calcul mental lorsque nest petit. La
justifier est plutôt intéressant. La programmer permet d’accéder à de plus grandes valeurs de n. Elle
est sans réel intérêt pratique.
L’énoncé a été rédigé pour scilab mais l’exercice n’est pas scilab-dépendant. Il suffit de remplacer
dans l’énoncé l’expression « fonction-scilab » par le terme qui convient au logiciel de calcul utilisé.
Pré-requis : En arithmétique, division euclidienne, nombres premiers et lemme d’Euclide (si un
nombre premier pdivise un produit a·bde deux entiers, il divise soit a, soit b) ou unicité de la dé-
composition d’un nombre entier en produit de nombres premiers ; en algorithmique, connaissances de
base de scilab (éditeur de texte scinotes, syntaxe d’une fonction-scilab, boucle tant que, commandes
d’affichage).
Matériel utilisé : Ordinateur équipé de scilab pour les lycées.
Durée indicative : Une heure (la quatrième question peut être omise).
Fichiers téléchargeables :
Pour les élèves : Fiche Élève (.pdf).
Pour les professeurs : Fiche Professeur (.pdf) & fichiers DivSept (.sci), DivVingtUn (.sci).
Solution :
1.a - m=q2u. Par exemple, si n= 1,m=2; si n= 315,m= 21. Ceci ne doit pas être considéré
comme évident. En effet, on vient de modéliser une démarche concrète (celle qui commence par « On
efface le chiffre des unités, etc »).
1.b - On déduit de n= 10·m+ 21·uque si mest un multiple de 7, nest un multiple de 7. Inverse-
ment, si nest un multiple de 7, 10·mest un multiple de 7. Comme 7 est un nombre premier qui ne
divise pas 10, il divise m, d’après le lemme d’Euclide. Ce raisonnement reste correct si on remplace
7 par 3 ou par 21.
1.c - Comme u0,mq=nu
10 n
10
·
À la deuxième itération, s’il y en a une, on a mn
10 n0
102et ainsi de suite. Donc mdeviendra
<1, donc 0, à un certain moment.
1.d - Toutes les valeurs de mobtenues au cours des itérations sont 18 car comme q0et u9
(division euclidienne), m=q2·u2·u18.
1.e - À chaque itération, net msont tous les deux soit divisibles par 7, soit non divisibles par 7
(cf.1.b). n0et m1ont donc la même propriété. Cela reste vrai si l’on remplace 7 par 3 ou par 21.
2 - Voici un algorithme commenté qui met en œuvre cette méthode :
1
Listing 1 – Fonction DivSept.sci
function DivSept ( n) //n e s t un e n t i e r donne >=1.
m1=n ; //m1 c ont ie ndr a l e s v a le u r s s u c c e s s i v e s de n dont l a va l eu r i n i t i a l e
// e s t g ard ee dans n (n_0 de l enonce ) . Sa v a l e u r f i n a l e e s t l e m_1
// de l ’ enonce .
while m1>=1
q=quotient (m1,1 0)
u=r e s t e (m1, 1 0 ) ;
m1=q2u ;
end
i f (m1==0|m1==7|m1==14)
a f f i c h e r ( "Lenombre␣ "+strin g (n)+ " ␣ e st d i v i s i b l e par 7 " ) ;
e l s e
a f f i c h e r ( "Lenombre␣ "+strin g (n)+ " ␣n ’ es t pas d i v i s i b l e par 7 " ) ;
end
endfunction
 
3.a - Voici quelques exemples d’applications :
Listing 2 – Exemples
>clear
>exec ( Chemin␣ deDivSept . s c i , 1)
>DivSept (6882309)
Le nombre 6882309 est d i v i s i b l e
par 7
>DivSept (6882309000)
Le nombre 6882309000 e s t d i v i s i
ble par 7
>DivSept (10^(30))
Le nombre 1.000000000D+30 n ’ es t
pas d i v i s i b l e par 7
>
 
3.b - Au cours des 3 premières itérations lorsque n= 6 882 309 000, les valeurs successives de msont
68 82 30 900, 688 23 090 et 6 882 309. On sait déjà que ce nombre est divisible par 7.
3.c - À chaque itération, n= 1030 perd un zéro. À la dernière itération, n= 1 et m1=2, donc
1030 n’est pas divisible par 7.
4 - La fonction-scilab ci-dessous affiche la divisibilité par 3, 7 et 21 :
Listing 3 – Fonction DivVingtUn.sci
function DivVingtUn (n) //n e s t un e n t i e r donne >=1.
m1=n ; //m1 c ont ie ndr a l e s v a le u r s s u c c e s s i v e s de n dont l a v al e ur i n i t i a l e
// e s t g arde e dans n (n_0 de l enonce ) . Sa v a l e u r f i n a l e e s t l e m_1
// de l ’ enonce .
while m1>=1
q=quotient (m1,1 0 )
u=r e s t e (m1, 1 0 ) ;
m1=q2u ;
end
i f (m1==0|m1==7|m1==14)
a f f i c h e r ( "Lenombre␣ "+strin g (n)+ " ␣ e st d i v i s i b l e par 7 " ) ;
2
e l s e
a f f i c h e r ( "Lenombre␣ "+strin g (n)+ " ␣n ’ es t pas d i v i s i b l e par 7 " ) ;
end
i f (m1==0|m1==3|m1==6|m1==9|m1==12|m1==15|m1==18)
a f f i c h e r ( " I l e st d i v i s i b l e par 3 " ) ;
e l s e
a f f i c h e r ( " I l n e s t ␣pas d i v i s i b l e par 3 " ) ;
end
i f (m1==0)
a f f i c h e r ( " I l e st d i v i s i b l e par 21 " ) ;
e l s e
a f f i c h e r ( " I l n e s t ␣pas d i v i s i b l e par 21 " ) ;
end
endfunction
 
Voici quelques exemples :
Listing 4 – Exemples
>clear
>exec ( ChemindeDivVingtUn . s c i , 1)
>DivVingtUn (6882309)
Le nombre 6882309 est d i v i s i b l e
par 7
I l e st d i v i s i b l e par 3
I l e st d i v i s i b l e par 21
>DivVingtUn (6882312)
Le nombre 6882312 n ’ es t pas div
i s i b l e par 7
I l e st d i v i s i b l e par 3
I l n ’ e st pas d i v i s i b l e par 21
>DivVingtUn (6882316)
Le nombre 6882316 est d i v i s i b l e
par 7
I l n ’ e st pas d i v i s i b l e par 3
I l n ’ e st pas d i v i s i b l e par 21
>DivVingtUn (6882309000)
Le nombre 6882309000 e s t d i v i s i
ble par 7
I l e st d i v i s i b l e par 3
I l e st d i v i s i b l e par 21
>DivVingtUn (10^(30))
Le nombre 1.000000000D+30 n ’ es t
pas d i v i s i b l e par 7
I l n ’ e st pas d i v i s i b l e par 3
I l n ’ e st pas d i v i s i b l e par 21
 
Pour aller moins loin !
Voici un procédé simple qui se fait de tête, qui produit le reste de la division par 7 et qui peut se
programmer, expliqué à l’aide d’un exemple (quand on tient absolument à ne pas se servir de la
commande reste de scilab pour les lycées) :
3
6882309
6112302
512302
22302
1302
602
42
0
(si on retire à un nombre un multiple de 7, on ne change pas son reste dans la division par 7).
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !