Corr Exercices Boucles 2024
Corr Exercices Boucles 2024
Corr Exercices Boucles 2024
Exercice 1
Ecrire un programme en Python qui permet de chercher puis d’afficher tous les entiers naturels formés de quatre
chiffres et qui vérifient les propriétés suivantes :
• La somme des chiffres est égale à vingt.
• Le chiffre des unités est le triple du chiffre des milliers.
• Le chiffre des dizaines est égal à celui des centaines.
Exemples : 1883, 2666, 3449
Exercice 2
Un entier naturel de trois chiffres est dit cubique s’il est égal à la somme des cubes de ses trois chiffres.
Exemple: 153 est cubique car : 153 = 13 + 53 + 33
Ecrire un programme en python, qui cherche et affiche tous les entiers cubiques de trois chiffres.
#programme exercice2
Algorithme exercice2
print ("Les nombres cubiques :")
Début
for n in range(100,1000) :
Ecrire("Les nombres cubiques :")
u = n%10
Pour n de 100 à 999 Faire
d = n//10%10
u n mod 10
c = n//100
d n div 10 mod 10
if n == (c**3 + d**3 + u**3):
c n div 100
print (n)
Si n = (c*c*c + d*d*d + u*u*u)
Alors Ecrire (n)
Finsi
Fin pour
Fin
Exercice 3
Ecrire un algorithme puis son implémentation en python qui permet de saisir un entier N, de calculer et d’afficher :
• la somme des N premiers entiers (1+2+3+4+…+N)
• Le produit des N premiers entiers (1*2*3*4*…*N)
• La somme des N premiers entiers impairs (1+3+5+7+…+(2N-1) = N2)
Page 1
Algorithme exercice3
Début #programme exercice3
Ecrire ("Saisir un entier :"), Lire (n) N=int(input("Donner un entier : "))
S10 S1=0
P1 P=1
Pour i de 1 à n Faire for i in range(1, N+1):
S1 S1 + i S1=S1+i
PP*i P=P*i
Fin pour S2=0
S20 for i in range(1, 2*N):
Pour i de 1 à (2*n-1) Faire if i % 2 == 1 :
Si i mod 2 = 1 S2=S2+i
Alors S2 S2 + i # Autre méthode : for i in range(1, 2*N, 2):
Fin si S2=S2+i
Fin pour print("la somme des N premiers entiers :", S1)
Ecrire ("la somme des N premiers entiers :", S1) print("le produit des N premiers entiers :", P)
Ecrire ("le produit des N premiers entiers :", P) print("la somme des N premiers entiers impairs :",
Ecrire ("la somme des N premiers entiers impairs :", S2) S2)
Fin
Exercice 4
Ecrire un programme en Python, qui permet de saisir un entier N, de calculer et d’afficher la somme S suivante :
S = 1 - 1/2 + 1/3 - 1/4 + 1/5 - ......... +1/n
Algorithme exercice4
#programme exercice4
Début
n=int(input("Saisir un entier : "))
Ecrire ("Saisir un entier :"), Lire (n)
s=0
s0
signe=1
signe1
for i in range(1,n+1) :
Pour i de 1 à n Faire
s = s + signe * 1/i
s s + signe * 1/i
signe = - signe
signe - signe
print ("Somme = %.3f" %s)
Fin pour
Ecrire ("Somme =", s)
Fin
Exercice 5
Ecrire un programme en python, qui permet de saisir deux entiers X et N puis afficher XN.
Page 2
Exercice 6
Un nombre est dit parfait s’il est égal à la somme de ses diviseurs sauf lui-même. Ecrire un programme en python qui
permet de déterminer si un entier N est parfait ou non.
Algorithme exercice6
# programme exercice6
Début
m = int(input("Saisir un nombre entier : "))
Ecrire ("Saisir un nombre entier :"), Lire (m)
s=0
s0
for i in range (1,(m//2)+1) :
Pour i de 1 à (m div 2) Faire
if m%i == 0 :
Si m mod i = 0
s=s+i
Alors s s + i
if m == s :
Finsi
print(m,"est parfait")
Fin pour
else:
Si m=s
print(m,"n'est pas parfait")
Alors Ecrire (m, "est parfait")
Sinon Ecrire (m, "n’est pas parfait")
Finsi
Fin
Exercice 7
Ecrire un programme en python qui détermine et affiche le nombre de lettres NL, le nombre de chiffres NC et le
nombre de symboles NS d’une chaine de caractères CH donnée.
Algorithme exercice7
Début
#programme exercice7
Ecrire ("Saisir une chaîne :"), Lire (CH)
CH=input("Saisir une chaine : ")
NL0
NL=0
NC0
NC=0
NS0
NS=0
Pour i de 0 à long(CH)-1 Faire
for i in range(0,len(CH)):
Si "A"<= Majus(CH[i])<="Z"
if "A"<=CH[i].upper()<="Z":
Alors NL NL + 1
NL= NL + 1
Sinon Si "0"<=CH[i]<="9"
else:
Alors NCNC + 1
if "0"<=CH[i]<="9":
Sinon NSNS+1
NC=NC + 1
Finsi
else:
Finpour
NS=NS+1
Ecrire ("nombre de lettres : ",NL)
print("nombre de lettres : ",NL)
Ecrire ("nombre de chiffres : ",NC)
print("nombre de chiffres : ",NC)
Ecrire ("nombre de symboles : ",NS)
print("nombre de symboles : ",NS)
Fin
Exercice 8
Ecrire un programme Python qui permet de saisir un entier N et de déterminer et d’afficher tous ses chiffres qui le
divisent.
Exemple : Si N = 2376 alors les chiffres 2, 3 et 6 seront affichés.
Page 3
Algorithme exercice8
#programme exercice8
Début
n=int(input("saisir un entier : "))
Ecrire("saisir un entier : "), Lire (n)
ch=str(n)
ch Convch(n)
print ("les diviseurs de ",n,"sont : ")
Ecrire("les diviseurs de ", n ,"sont : ")
for i in range(len(ch)) :
Pour i de 0 à long(ch)-1 Faire
x=int(ch[i])
xValeur(ch[i])
if (n%x) == 0 :
Si (n mod x) = 0
print(x)
Alors Ecrire(x)
Finsi
Finpour
Fin
Exercice 9
Un entier supérieur à 1 est dit premier s'il admet exactement deux diviseurs : 1 et lui-même. Écrire un programme en
Python, permettant de saisir un entier N de vérifier et d’afficher s’il est premier ou non.
#programme exercice9
Algorithme exercice9
n=int(input("donner un entier >1 : "))
Début
d=0
Ecrire ("donner un entier >1 : "), Lire(n)
for i in range(1,n+1) :
d0
if (n%i) == 0 :
Pour i de 1 à n Faire
d=d+1
Si (n mod i) = 0
if d == 2 :
Alors d d + 1
print("Le nombre",n,"est premier")
Finsi
else:
Finpour
print("Le nombre",n,"n'est pas premier")
Si d = 2
Alors Ecrire("Le nombre",n,"est premier")
Sinon Ecrire("Le nombre",n,"n'est pas premier")
Finsi
Fin
Exercice 10
Écrire un programme en Python, permettant de trouver le nombre de voyelles dans une chaine de caractères CH.
Exemple : Si CH ="LYCEE ibn rochd chebba"
Le programme affichera le nombre des voyelles est : 7
Page 4
Exercice 11
Un palindrome est un mot, ou une phrase, lisible dans les deux sens, par exemple "kayak" et "radar". Ecrire un
programme en Python qui vérifie si une chaîne de caractères est palindrome ou non.
Algorithme exercice11
#programme exercice11
Début
ch=input("saisir une chaine ")
Ecrire("saisir une chaine "), Lire(ch)
inv=""
inv ""
for i in range (len(ch)) :
Pour i de 0 à long(ch)-1 Faire
inv = ch[i] + inv
inv ch[i] + inv
if inv==ch :
Finpour
print(ch,"est palindrome")
Si inv = ch
else :
Alors Ecrire(ch,"est palindrome")
print(ch,"n'est pas palindrome")
Sinon Ecrire(ch,"n'est pas palindrome")
Finsi
Fin
Exercice 12
Ecrire un programme Python, qui permet de saisir une chaîne de caractères CH puis d’en extraire les deux nombres
formés par les chiffres figurant dans la chaîne CH (extraction à partir de la droite puis extraction à partir de la
gauche).
Exemple : Si CH = "A45B3C2"
Le programme affichera 4532 et 2354
Algorithme exercice12
Début #programme exercice12
Ecrire("saisir une chaine "), Lire(ch) ch=input("saisir une chaine ")
s1 "" s1=""
s2 "" s2=""
Pour i de 0 à Long(ch)-1 Faire for i in range (len(ch)) :
Si Estnum(ch[i]) if ch[i].isnumeric() :
Alors s1 s1 + ch[i] s1 = s1 + ch[i]
s2 ch[i] + s2 s2 = ch[i] + s2
Finsi print(s1)
Finpour print(s2)
Ecrire(s1)
Ecrire(s2)
Fin
Exercice 13
Ecrire un programme Python qui réalise le traitement suivant :
- saisir un entier n de l’intervalle [100,500].
- afficher tous les entiers de l’intervalle [10,30] en remplaçant par le caractère '*' tous les diviseurs de n ainsi
que tous les entiers comportant dans leurs écritures le chiffre de centaine de n.
Exemples d'exécution:
Si n=312 alors la liste suivante sera affichée :
10 11 * * 14 15 16 17 18 19 20 21 22 * * 25 * 27 28 29 *
Page 5
Algorithme exercice13
Début
#programme exercice13
Ecrire("Donner un entier entre 100 et 500")
n=int(input("Donner un entier entre 100 et 500"))
Lire (n)
for i in range(10,31):
Pour i de 10 à 30 Faire
if (n%i==0)or(i%10==n//100)or(i//10==n//100):
Si (n mod i = 0) ou (i mod 10 = n div 100) ou (i div 10 =
print('*',end=' ')
n div 100)
else:
Alors Ecrire ("*"," ")
print(i,end=' ')
Sinon Ecrire (i, " ")
Finsi
Finpour
Fin
Exercice 14
Un nombre N est dit ondulant s’il est formé de trois chiffres au minimum et qui est de la forme ababab… avec a ≠ b.
Exemples :
▪ 101, 2525, 56565 et 1717171 sont des nombres ondulants.
▪ 12345 et 808008 ne sont pas des nombres ondulants
Ecrire un programme Python, qui permet de vérifier si un entier naturel N (N>=100) est un nombre ondulant ou non.
Page 6
Exercice 15
Soit S la somme des diviseurs propres (sauf lui-même) de N. Ecrire un programme en Python, qui permet de saisir un
entier N (2 ≤ N ≤ 100) et d’afficher sa nature :
• Nombre déficient si S<N
• Nombre presque parfait si S = N-1
• Nombre parfait si S=N
• Nombre quasi-parfait si S = N+1
• Nombre abondant si S>N
Exemple :
Pour N=6, la somme S=1+2+3, donc N=S, alors le programme affichera "Nombre parfait"
Algorithme nombre
Début
Répéter #program nombre
Lire(n) n=0
Jusqu'à (2 ≤ n ≤ 100) while not (2<=n<=200) :
s0
n=int(input())
Pour i de 1 à (n div 2) Faire
Si n mod i = 0 s=0
Alors s s + i for i in range (1,n//2+1):
Finsi if n % i ==0:
Finpour s=s+i
Si s<n Alors Ecrire(n,' Nombre déficient') if s<n:
Sinon Si s=n Alors Ecrire (n,' Nombre parfait') print(n,' Nombre déficient')
Sinon Ecrire (n,' Nombre abondant') elif s==n:
Finsi print(n,' Nombre parfait')
Si s=n-1 else:
Alors Ecrire(n,' Nombre presque parfait') print(n,' Nombre abondant')
Finsi if s==n-1:
Si s=n+1 print(n,' Nombre presque parfait')
Alors Ecrire(n,' Nombre quasi parfait') if s==n+1:
Finsi print(n,' Nombre quasi parfait')
Fin
Exercice 16
Un nombre N est dit hautement abondant si la somme de ses diviseurs (lui-même inclus) est strictement supérieure
à la somme des diviseurs de n’importe quel nombre plus petit que lui (le nombre inclus).
Exemples :
• 8 est hautement abondant car la somme de ses diviseurs, qui est égale à 15 (1+2+4+8=15), est
strictement supérieure à la somme des diviseurs de tout entier plus petit que lui.
• 5 n’est pas hautement abondant car la somme de ses diviseurs, qui est égale à 6 (1+5=6), est inférieure
à 7 qui la somme des diviseurs de 4 (1+2+4=7).
Page 7
#programme hautement abondant
def SomDiv(N):
s=N
for i in range(1,N//2 +1):
if N%i==0:
s=s+i
return s
def HAbondant(N):
ok=True
i=N-1
S=SomDiv(N)
while i>=1 and ok:
if SomDiv(i) > S:
ok=False
else :
i=i-1
return ok
for i in range(1,100):
if HAbondant(i):
print(i,end=" ")
Page 8
Répondez à la question suivante en une seule commande. Combien y a-t-il de nombres pairs dans
l’intervalle [2, 10000] inclus ?
Page 9