Vous êtes sur la page 1sur 2

Module : POO

TD 1
Exercice 1
Écrire un programme Python qui permet de déterminer si une année est bissextile ou non (Afficher un
message)
Remarque : une année bissextile est une année divisible par 4, mais si l'année est une année séculaire (en
gros, 100, 200, ..., 1900, 2000, etc.), il faut qu'elle soit divisible également par 400 (genre 1900 n'était pas
une année bissextile !)

Exercice 2
Écrire un programme Python qui permet de calculer la factorielle N! = 123...(N-1)N d'un entier naturel N
en respectant que 0!=1.
a) Utiliser while,
b) Utiliser for.

Exercice 3
La suite de Syracuse repose sur un principe simple. Prenez un nombre au hasard:
• s'il est pair, divisez-le par 2;
• s'il est impair, multipliez-le par 3 et ajoutez 1.
Renouvelez cette opération plusieurs fois. Après suffisamment d'itérations, vous devriez finir par tomber
sur la valeur 1. Par exemple, à partir de 17, on trouve la suite de valeurs: 52 26 13 40 20 10 5 16 8 4 2 1.
Écrire un programme Python qui demande un nombre à l'utilisateur, et qui affiche les valeurs successives
de la suite de Syracuse relative à ce nombre, en s'arrêtant bien sûr à 1.

Exercice 4
Sachant qu’un nombre premier est un nombre qui n’accepte aucun diviseur excepté 1 et lui-même. Écrire
un programme Python qui donne les N premiers nombre premiers.

Exercice 5
Écrire un programme Python qui calcule pour une valeur X donnée du type réel la valeur numérique d'un
polynôme de degré n:
P(X) = AnXn + An-1Xn-1 + ... + A1X + A0
Les valeurs de n, des coefficients An, ... , A0 et de X seront entrées au clavier.
Utilisez le schéma de Horner qui évite les opérations d'exponentiation lors du calcul:

S.Bahassine 1 1ere Année cycle d’ingénieur GSI / GSMI


Module : POO

Exercice 6
Écrire un programme Python qui permet de calculer la somme S :

Exercice 7
Écrire un programme Python qui permet d’afficher un triangle isocèle formé d'étoiles de N lignes (N est
fourni au clavier):
Nombre de lignes : 6
*
***
*****

*************

Exercice 8
L’algorithme de cryptage RSA utilise la décomposition en facteurs premiers d’un nombre entier
comportant entre cent et deux cents chiffres. La sécurité du procédé repose sur l’énormité du temps de
calcul nécessaire pour effectuer cette décomposition. Il est utilisé par exemple dans les cartes bancaires.
Pour décomposer un nombre entier N en facteurs premiers, on cherche tout d’abord le plus petit diviseur
de N plus grand que 1. Ce diviseur est son plus petit facteur premier. Ensuite, on divise N par ce facteur,
et on recommence l’opération avec le nombre obtenu. La décomposition continue tant que le résultat de
la division n’est pas égal à 1. Voici un exemple avec N=2200 :
2200/2=1100, 1100/2=550, 550/2=275, 275/5=55, 55/5=11, 11/11=1
Donc 2×2×2×5×5×11 est la décomposition de 2200 en facteurs premiers.
Écrire un programme C qui détermine la décomposition en facteurs premiers d’un nombre entier fourni
par l’utilisateur. Concernant le choix des diviseurs, on se contentera d’essayer tous les nombres entiers de
2 à N : 2, 3, 4, 5, 6, 7,…, N-1, N.
Dire en une phrase ou deux (sans écrire de programme) comment on pourrait optimiser la recherche des
facteurs premiers de façon à accélérer l’exécution du programme.

S.Bahassine 2 1ere Année cycle d’ingénieur GSI / GSMI

Vous aimerez peut-être aussi