Vous êtes sur la page 1sur 5

NB : pour chaque sujet une solution modulaire est exigée.

Sujet 1
Cryptologie avec la méthode Jules César
La légende raconte que Jules César transmettait ses messages en décalant chaque lettre de
3 positions : A devient D, B devient E,... W devient Z, X devient A, Y devient B et Z devient C.

Les chiffres sont décalés de la même façon, les autres caractères (espaces, virgules, points...)
ne sont pas modifiés.

 Écrire un programme en Python qui permet de réaliser le chiffrement/cryptage d’une


chaîne de caractère en utilisant la méthode de Jules César.

Exemple :
Donner la chaîne à crypter : Python?$!
Le programme affichera : Python?$! Devient : Sbwkrq?$!

Sujet 2
Chiffre de chance
Pour chercher le chiffre de chance d'une personne, on procède comme suit : on additionne
les chiffres composants la date de naissance de la personne concernée. Au nombre obtenu,
on refait le même procédé jusqu'à ce qu'on obtienne un nombre composé d'un seul chiffre.
Ce nombre est le chiffre de chance.
Soit la date de naissance suivante "29/09/1999"

On additionne les chiffres de la date de naissance : 2+9+0+9+1+9+9+9= 48

48 est composé de deux chiffres, on refait le même traitement : 4 + 8 = 12

12 est composé de deux chiffres, on refait le même traitement : 1 + 2= 3


3 est composé d'un seul chiffre et c'est le chiffre de chance recherché.

 Écrire un programme en Python qui permet de saisir la date de naissance d'une personne
sous la forme d'une "jj/mm/aaaa" (aucun contrôle ne sera effectué) puis d'appliquer la
méthode citée ci-dessus et d'afficher le chiffre de chance trouvé.
Sujet 3
Nombre automorphe
Un nombre automorphe est un nombre entier dont le carré se termine par un même chiffre
ou les mêmes chiffres que celui ou ceux du nombre lui-même.

 Écrire un programme en Python qui permet de chercher et d’afficher tous les nombres
automorphes de l’intervalle [2, 10000].

Exemple :
Le programme affichera :

5 est un nombre automorphe : carré de 5 = 25


6 est un nombre automorphe : carré de 6 = 36
25 est un nombre automorphe : carré de 25 = 625
76 est un nombre automorphe : carré de 76 = 5776
376 est un nombre automorphe : carré de 376 = 141376

Sujet 4
Cryptage
 Écrire un programme en Python qui permet de remplir le tableau t par n messages (n ≥ 2),
ces messages ayant une longueur maximale de 20 caractères, on désire les crypter selon le
procédé suivant :

o Le premier caractère du message est considéré comme clé de cryptage.


o Chaque caractère du message sera codé en ajoutant son code ASCII au code ASCII de
la clé.
o Si cette somme dépasse 127, on en soustrait 127.
o Déterminer le caractère dont le code ASCII est égal à cette somme.
Exemple :
Donner la taille du tableau (>=2) : 5
t [ 0 ]= alerte
t [ 1 ]= secours
t [ 2 ]= ennemis
t [ 3 ]= armes
t [ 4 ]= avions
Le programme affichera :

Les messages cryptés sont :


CNGTVG gYWcifg KTTKSOY CTOGU CXKQPU
Sujet 5
Cancre
La méthode de cancre, est une méthode utilisée pour calculer le produit de deux
entiers a et b (a et b >1), elle a le principe suivant :
• Doubler b.
• Diviser a par 2.
• Dans le cas où a est impair :
▪ On le décrémente de 1.
▪ On additionne b au résultat.
• Refaire les étapes précédentes 1 , 2 , 3 jusqu'à a<=1.

 Écrire un programme en Python qui permet de saisir deux entiers a et b supérieur


à 1, calculer et d’afficher le produit M en utilisant la méthode de cancre.
Exemple :
a = 36 b = 54
a = 36 div 2 = 18 b = 54 * 2 = 108
a = 18 div 2 = 9 b = 108 * 2 = 216 a = 9-1 = 8 m = 216
a = 8 div 2 = 4 b = 216 * 2 = 432
a = 4 div 2 = 2 b = 432 * 2 = 864
a = 2 div 2 = 1 b = 864 * 2 = 1728 a = 1-1 = 0 m = 216 + 1728 = 1944

Sujet 6
Nombre bipériodique
Un nombre bipériodique est un entier naturel dont les chiffres partagés en deux parties égales
sont identiques, sans qu’on change l’ordre des chiffres.
Ainsi 77, 5454, 385 385, 34 563 456 sont des nombres bipériodiques.
Aucun entier formé d'un nombre impair de chiffres ne peut être bipériodique.
 Écrire un programme en Python qui permet de chercher et d’afficher tous les nombres
bipériodiques de l’intervalle [10, 10000].
Le programme affichera :
............................................
1010 est un nombre bipériodique
1111 est un nombre bipériodique
1212 est un nombre bipériodique
1313 est un nombre bipériodique
1414 est un nombre bipériodique
1515 est un nombre bipériodique
1616 est un nombre bipériodique
1717 est un nombre bipériodique
Sujet 7
Nombre narcissique

Un nombre narcissique est un entier naturel N non nul qui est égal à la somme des puissances
p-ièmes de ses chiffres, où p désigne le nombre de chiffres de N.

153 = 13+ 53+ 33


548834 = 56+ 46+ 86 + 86+ 36+ 46

 Écrire un programme en Python qui permet d’afficher tous les nombres narcissiques
inférieurs à 100000.

Exemple :
Le programme affichera :
Les nombres narcissiques inférieurs à 100000 sont :
153 est un nombre narcissique
370 est un nombre narcissique
371 est un nombre narcissique
407 est un nombre narcissique
1634 est un nombre narcissique
8208 est un nombre narcissique
9474 est un nombre narcissique
54748 est un nombre narcissique

Sujet 8
Nombre polydivisible

Un nombre polydivisible est un entier naturel s'écrivant avec les chiffres a b c d e ..., qui possède
les propriétés suivantes :

o Le nombre formé par ses deux premiers chiffres "a b", est un multiple de 2.
o Le nombre formé par ses trois premiers chiffres "a b c", est un multiple de 3.
o Le nombre formé par ses quatre premiers chiffres "a b c d", est un multiple de 4. etc.

 Écrire un programme en Python qui permet de chercher et d’afficher tous les nombres
polydivisibles de l’intervalle [10, 10000].

Exemple :
Le programme affichera : 129 est un nombre polydivisible
Sujet 9
Syracuse

A un entier n strictement positif on associe n/2 si n est pair et 3n+1 si n est impair.
En réappliquant cette transformation à l'entier obtenu, on définit un algorithme dit de
Syracuse.
Bien qu'à ce jour personne n'en ait trouvé de démonstration, il semble que pour tout entier
strictement positif de départ on finisse toujours par arriver à 1.

Exemple : valeur de départ n=12

6 3 10 5 16 8 4 2 1

On doit appliquer 9 fois la transformation.


 Écrire un programme en Python qui permet de saisir une valeur de départ proposée par
l'utilisateur, d’afficher la liste des entiers obtenus jusqu'à 1, ainsi que le nombre de fois qu'il
est nécessaire d'appliquer la transformation pour y arriver.

Sujet 10
IMEI
L'IMEI (International Mobile Equipement Identity) est un numéro composé de 15 chiffres. II
permet à un opérateur de réseau GSM d'identifier le mobile appelant et ainsi de l'autoriser ou
non se connecter.
Un numéro est dit un IMEI s'il vérifie la formule de LUHN décrite ci-dessous :
- Calculer la somme S des chiffres du numéro en appliquant le principe suivant :
- Doubler les valeurs des chiffres de rang pair.
- Si le double est supérieur ou égale à 10 alors il sera remplacé par la somme de ses
chiffres.
N.B : Le premier chiffre à gauche est de rang 1, le deuxième chiffre à gauche est de rang 2,
etc.
- Si la somme S est un multiple de 10 alors le nombre est en accord avec la formule de
LUHN et dans ce cas il est dit valide, sinon il est dit invalide.

 Écrire un programme en Python qui permet de saisir un numéro de 15 chiffres et de vérifier


s'il est un IMEI ou non en appliquant la formule de LUHN.

Exemple :
Taper un numéro formé par 15 chiffres : 354365039281174
Le programme affichera :
354365039281174 est un IMEI

Vous aimerez peut-être aussi