Académique Documents
Professionnel Documents
Culture Documents
5 من1 صفحة
Q3) (2 pt) // Ce programme vérifie si un entier N est un nombre factoriel.
#include <stdio.h>
int main( )
{ int n, i, f; (0.25 pt)
do {
printf("\nDonner la valeur de N (N Entier > 0). N= ? ") ;
scanf("%d", &n) ; (0.25 pt)
} while (n <= 0);
i = 1;
5 من2 صفحة
Si S = NCopie Alors (0.25 pt)
Ecrire( NCopie ) // Ce n’est pas N, car N est devenu nul. (0.25 pt)
Cpt Cpt + 1 (0.25 pt)
FSi
N NCopie + 1 // Passer à l’entier suivant (0.25 pt)
Jusqu’à Cpt = 4 (0.25 pt)
Fin
/* Pour information : les nombres factorions sont : 1, 2, 145 et 40585. */
5 من3 صفحة
Q2) (2 pts) Si N = 17 alors on a : Si N = 37 alors on a :
N D Prem N D Prem
17 3 Vrai (0.25 pt) 37 3 Vrai
(0.25 pt)
5 5
➔ Message : « 17 est premier » (0.25 pt) 7
Si N = 27 alors on a : ➔ Message : «37 est premier » (0.25 pt)
N D Prem Si N = 47 alors on a :
27 3 Vrai (0.25 pt) N D Prem
Faux 37 3 Vrai
➔ Message : « 27 n’est pas premier » (0.25 pt) 5 (0.25 pt)
7
➔ Message : «47 est premier » (0.25 pt)
Q3) (5 pts) Algorithme NombresPremiers
NMax = 9999
5 من4 صفحة
Si Prem = Vrai Alors (0.25 pt)
NCopie N (0.25 pt)
// Calculer la somme des chiffres de NCopie
S0
TQ NCopie ≠ 0 Faire
S S + NCopie Mod 10 (0.50 pt)
NCopie NCopie Div 10
FTQ
Si S Mod 2 ≠ 0 Alors // La somme des chiffres est impaire (0.25 pt)
D3
TQ (D SQRT( S )) ET (Prem = Vrai) Faire
Si S Mod D = 0 Alors
Prem Faux
Sinon (0.25 pt)
DD+2
FSi
FTQ
Si Prem = Vrai Alors // Compter et sauvegarder le nombre trouvé (0.25 pt)
Cpt Cpt + 1 (0.25 pt)
TAB[ Cpt ] N (0.25 pt)
FSi
FSi
FSi
NN+2 // Passer au nombre impair suivant (0.25 pt)
Jusqu’à ( N > NMAX ) OU ( Cpt = TAILLE ) (0.50 pt)
Ecrire(" Il existe ", Cpt, " nombres spéciaux, qui sont : ")
Pour D 1 à Cpt Faire
Ecrire( TAB[ D ] ) // Affichage des cases non-vides du tableau (0.50 pt)
FPour
Fin
*** Fin du corrigé-type ***
5 من5 صفحة