DEVOIR DE CONTROLE N3 4si1&2
DEVOIR DE CONTROLE N3 4si1&2
DEVOIR DE CONTROLE N3 4si1&2
Fin
Travail demandé :
Un entier positif N est dit carré parfait s'il existe un entier K tel que N = K2 .
On se propose de chercher toutes les décompositions de N (un carré parfait) en une somme de carrés
de nombres différents.
Exemples :
▪ Si N = 121 les solutions seront :
121 = 102+42+22+12
121 = 92+62+22
▪ Si N = 49 la solution sera : 49 = 62+32+22
▪ Si N = 36 on affiche alors : Pas de solution pour ce nombre
1
Travail demandé : Ecrire un algorithme d'un module qui affiche toutes les décompositions
d’un carré parfait N si elles existent ou le message « Pas de solution pour ce nombre » dans le cas
contraire.
NB : Utiliser le format de l’exemple ci-après : Si N = 49 le module affichera :
49 = 6^2 + 3^2 + 2^2
Un Nombre P est un Nombre premier de Sophie Germain s’il est un nombre premier et son
double plus un est aussi premier. (P et 2P + 1 sont premiers.)
Exemple : P = 5 est un nombre premier de Sophie Germain puisque 2P+1=11 est aussi premier
Une chaîne de Cunningham est une séquence d’au moins 2 nombres premiers de Sophie Germain.
Exemple
- Séquence à cinq termes : 2, 5, 11, 23, 47(le nombre suivant serait 95. N’est pas premier)
- Séquence à deux termes : 3, 7(le nombre suivant serait 15. N’est pas premier)
Questions :
1. Ecrire un module Cunningham qui permet à partir d’un nombre P de déterminé la chaine de
Cunningham ainsi que le nombre de termes
Procédure Cunningham (P : entier ; @CH : chaine ; @ NB : entier)
Exemple : Cunningham (2, CH, NB) donne pour CH = "2, 5, 11, 23, 47" et NB = 5
Cunningham (10, CH, NB) donne pour CH = "" et NB = 0
2
Exercice 4 : NOMBRES DE SMITH (6pts)
Un nombre S de SMIH est un nombre composé dont la somme des chiffres est la même que celle des
chiffres de ses facteurs premiers, incluant les répétitions de facteurs.
Ainsi 636 est un nombre de SMITH, ces facteurs sont 2 * 2 * 3 * 53.
La somme des chiffres de 636 est 15 et celle des chiffres des facteurs est égale à 15
Nombre composé : Entier naturel qui est le produit de deux nombres premiers ou plus
Questions :
1. Ecrire une fonction SommeChiffre (N : Entier) : Entier, qui permet de calculer la somme
de chiffres d’un entier N.
2. Ecrire une fonction SMITH (N : Entier) : chaine, qui permet de vérifier si un Entier N est
un nombre de SMITH.
NB : cette fonction retourne une chaine vide si N n’est pas SMITH sinon elle retourne sa
décomposition en facteur premiers.
3. Ecrire une procédure Generere (@G : texte ; D, F : entier), permettant de remplir G
« ListeSmith.txt» par tous les nombres de SMITH entre D et F.
Chaque ligne de Fichier G contient le nombre SMITH ainsi que sa décomposition en facteur
premier
Exemple : D = 10 et F = 30 Le fichier G devient
22 = 2 * 11
27 = 3 * 3 * 3
3
DEVOIR DE CONTROLE N°3
Lycée : Route de Gabés Classe : 4SI2 Date : 13/02/2023 Durée : 1H30
(44)10 (101100)2 : et la Somme des chiffres de 101100 est égale à 3 (Nombre Premier)
1. Ecrire une fonction DecToBin (P : entier) : chaine, qui permet de convertir un nombre décimale
P vers la base 2
2. Ecrire une fonction Somme (CH : chaine) : entier, qui permet de calculer la somme des chiffres
d’une chaine numérique CH
3. Ecrire une fonction Premier (N : entier) : Booléen, qui permet de vérifier si un entier N est
premier ou non
4. Ecrire une fonction pernicieux (P : Entier) : Booléen qui permet de vérifier si un nombre P est
pernicieux ou non
5. Ecrire une procédure Affiche (N : Entier) qui permet d’afficher les N premiers nombre
pernicieux
01101010011101010110100101101110
00110010001100000011001000110011
4
Après décryptage, le programme affichera le message suivant : Bac info juin 2023
Notons que, le code ASCII du caractère "B" (le premier caractère du premier mot) est 66, dont
la représentation binaire est 01000010 (les huit premiers bits de la première ligne du fichier
"MsgCrypte.txt").
Dans le reste de l’exercice, on utilise la base décimale dans laquelle le nombre K est écrit.
Le principe des rubans est d'identifier, pour chaque puissance de la base 10, le reste dans sa division
euclidienne par D.
Exemple : Pour D = 7, on a :
100 mod 7 = 1 101 mod 7 = 3 102 mod 7 = 2 103 mod 7 = 6 104 mod 7 = 4
105 mod 7 = 5 106 mod 7 = 1 107 mod 7 = 3 108 mod 7 = 2 109 mod 7 = 6
1010 mod 7 = 4 1011 mod 7 = 5 1012 mod 7 = 1 etc ….
C'est ce ruban que l'on utilisera pour savoir si K est divisible par 7.
Exemple :
K = 196
Ruban = 231
S = 1x2 + 9x3 + 6x1 = 35
On recommence avec 35
K = 35
Ruban =31
S =5x1 + 3x3 =14
On recommence avec 14
K = 14
Ruban =31
S =5x1 + 3x3 = 7
On recommence avec 7
K = 7
Ruban =1
Questions :
1. Quel est le ruban associé à l'entier 2 (calculer les 4 premiers nombre)
2. Ecrire un module qui permet de vérifier si un entier K est divisible par D on utilise le principe
décrit précédemment.
NB : le calcul s’arrête l’lorsque la somme S reste stationnaire
6
Exercice 4 : Nombres De Permutation (4pts)
Notre objectif est de déterminer toutes les permutation possibles des chiffres de 1 à N (N<10)
Exemple Si N = 3 les permutations possibles sont : 123 – 132 – 213 – 231 – 312 – 321
Si N = 4 les permutations possibles sont : 1234 – 1243 – 1324 – 1342 – 1423 – 1432
2134 – 2143 – 2314 – 2341 – 2413 – 2431
3124 – 3142 – 3214 – 3241 – 3412 – 3421
4123 – 4132 – 4213 – 4231 – 4312 – 4321
Pour réaliser cette tâche, on utilise une matrice M dont le nombre de lignes est N et le nombre des
colonnes est N!, comme le montre l’exemple ci-contre pour N = 4.
0 1 2 3 4 5 6 7 8 …… 23
0 1
1 21 12
2 321 231 213 312 132 123
3 4321 3421 3241 3214 4231 2431 2341 2314 ……... ……… 1234
Méthode de remplissage
On commence par écrire 1 sur la première ligne, (Ligne 0)
Puis la deuxième ligne est l’insertion de 2 dans toutes les positions possibles de 1
Puis la troisième ligne est l’insertion de 3 dans toutes les positions possibles de 21 et 12
Puis la quatrième ligne est l’insertion de 4 dans toutes les positions possibles de 321, 231, 213, 312,
132, 123
Etc …..
Travail demandé
Ecrire l’algorithme d’un module permettant de remplir M par les N premières lignes. (M est de type
Mat)