Exercices corrigés sur les boucles et les algorithmes fondamentaux
Cette série d'exercices vous permettra de maîtriser les boucles, les calculs itératifs et les algorithmes classiques comme le PGCD, les nombres parfaits, etc.
Affichage des dix nombres suivants
Ecrire un programme qui demande un nombre de départ, et qui ensuite affiche les dix nombres suivants. Par exemple, si l'utilisateur entre le nombre 17, le programme affichera les nombres de 18 à 27.
#include <stdio.h>
int main(void)
{
int Nb;
printf("Saisir un nombre : ");
scanf("%d", &Nb);
for (int i = Nb + 1; i <= Nb + 10; i++)
printf("%d \t", i);
return 0;
}Nb = int(input("saisir un nombre - "))
for i in range(Nb + 1, Nb + 11):
print(i, end="\t")Saisir un nombre - 3 4 5 6 7 8 9 10 11 12 13
PGCD par soustractions successives
Le pgcd de deux nombres par soustractions successives.
- pgcd(a,b) = pgcd(a-b,a) si a > b
- pgcd(a,b) = pgcd(a,b-a) si b > a
- pgcd(a,b) = a si a = b
On suppose que les opérandes sont des entiers positifs. Écrire un programme qui permet de calculer le PGCD de deux nombres a et b.
#include <stdio.h>
int main(void)
{
int a, b, m, n, temp;
printf("saisir le premier nombre - ");
scanf("%d", &a);
printf("saisir le deuxième nombre - ");
scanf("%d", &b);
n = a;
m = b;
while (n != m)
{
if (n > m)
{
temp = n;
n = n - m;
m = temp;
}
else if (n < m)
{
m = m - n;
}
}
printf("le PGCD de %d et %d est : %d", a, b, n);
return 0;
}a = int(input("saisir le premier nombre : "))
b = int(input("saisir le deuxieme nombre : "))
n = a
m = b
while n != m:
if n > m:
n, m = n - m, n
elif n < m:
n, m = n, m - n
print("le PGCD de", a, "et", b, "est :", n)saisir le premier nombre - 16 saisir le deuxième nombre - 6 le PGCD de 16 et 6 est : 2
Somme et moyenne de N entiers
Ecrire un programme qui saisit N entiers et affiche leur somme et leur moyenne.
#include <stdio.h>
int main(void)
{
int N, S, val;
float M;
printf("Saisir le nombre d'éléments - ");
scanf("%d", &N);
S = 0;
for (int i = 0; i < N; i++)
{
printf("saisir une valeur - ");
scanf("%d", &val);
S += val;
}
M = (float)S / N;
printf("la somme est %d et la moyenne est : %f", S, M);
return 0;
}N = int(input("saisir le nombre d'éléments : "))
S = 0
for i in range(N):
nb = int(input("saisir un nombre : "))
S += nb
M = S / N
print("la somme est", S, "et la moyenne est :", M)Saisir le nombre d'éléments - 3 saisir une valeur - 2 saisir une valeur - 4 saisir une valeur - 6 la somme est 12 et la moyenne est : 4.000000
Nombre parfait
Ecrire un programme qui détermine si un entier N est parfait ou non.
Un entier est dit parfait s'il est égal à la somme de ses diviseurs. Exemple : 6 = 3 + 2 + 1
#include <stdio.h>
#include <math.h>
int main(void)
{
int N, S = 0;
printf("Saisir un nombre : ");
scanf("%d", &N);
for (int i = 1; i <= N/2; i++)
{
if (N % i == 0)
{
S += i;
}
}
if (S == N)
printf("%d est un nombre parfait", N);
else
printf("%d n'est pas un nombre parfait", N);
return 0;
}N = int(input("saisir un nombre : "))
S = 0
for i in range(1, N//2 + 1):
if N % i == 0:
S += i
if S == N:
print(N, "est un nombre parfait")
else:
print(N, "n'est pas un nombre parfait")Saisir un nombre : 6 6 est un nombre parfait
Produit par additions successives
Ecrire un programme qui permet de calculer le produit de deux entiers en utilisant des additions successives.
#include <stdio.h>
int main(void)
{
int a, b, P = 0;
printf("saisir le premier nombre - ");
scanf("%d", &a);
printf("saisir le deuxième nombre - ");
scanf("%d", &b);
for (int i = 0; i < b; i++)
{
P += a;
}
printf("le produit de %d et %d est : %d", a, b, P);
return 0;
}a = int(input("saisir le premier nombre : "))
b = int(input("saisir le deuxieme nombre : "))
P = 0
for i in range(b):
P += a
print("le produit de", a, "et", b, "est :", P)saisir le premier nombre - 4 saisir le deuxième nombre - 3 le produit de 4 et 3 est : 12
- Les boucles
forsont idéales pour les itérations avec un nombre connu de répétitions. - La boucle
whileest utilisée quand la condition d'arrêt dépend d'un calcul. - L'algorithme du PGCD par soustractions successives est une application classique de la boucle while.
- Un nombre parfait est égal à la somme de ses diviseurs propres.
- La multiplication peut être implémentée comme une série d'additions.
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.