factSomPrem.cpp
- Code:
// Ajouter les include nécessaires éventuels
// Include des fonctions définies dans ce fichier :
#include "factSomPrem.h"
/*
N : factorielle
D : calcul de la factorielle du nombre pNb
E : pNb
S : -
R : retourne la factorielle de pN
Prec : pNb >= 0
*/
int factorielle (int pNb)
{
int i, result;
result = 1;
for (i = 1; i <= pNb; i++)
result = result * i;
return result ;
}
/*
N : somNPremiersEntiers
D : calcul de la somme des pNbre premiers entiers
E : pNbre
S : -
R : retourne la somme des pNbre premiers entiers
Prec : pNbre > 0
*/
int somNPremiersEntiers (int pNbre)
{
int i, result;
result = 0;
for (i = 1; i <= pNbre; i++)
result = result + i;
return result ;
}
/*
N : estDiviseur
D : dit si le nombre pNb1 est diviseur de pNb2
E : pNb1 pNb2
S : -
R : retourne vrai si pNb1 est un diviseur
Prec : pNb1>0 et pNb2>=0
*/
bool estDiviseur(int pNb1,int pNb2)
{
bool result;
int reste;
reste = pNb1%pNb2;
result=true;
if (reste != 0)
{
result=false;
}
return result;
}
/*
N : estPremier
D : dit si le nombre pNb est premier
E : pNb
S : -
R : retourne vrai si pNb1 est un nombre premier
Prec : pNb>0
*/
bool estPremier(int pNb)
{
int i;
bool result,div;
result=true;
i=2;
while((i<=pNb-1) && (result==true))
{
div=estDiviseur(pNb,i);
result= !div;
i=i+1;
}
if((pNb==1) || (pNb==0))
{
result=false;
}
return result;
}
// DEFINIR ici les autres fonctions du TP
- Code:
// Ces deux lignes sont à conserver
#ifndef _FACTSOMPREM_H
#define _FACTSOMPREM_H
/*
N : factorielle
D : calcul de la factorielle du nombre pNb
E : pNb
S : -
R : retourne la factorielle de pN
Prec : pNb >= 0
*/
int factorielle (int pNb);
/*
N : somNPremiersEntiers
D : calcul de la somme des pNbre premiers entiers
E : pNbre
S : -
R : retourne la somme des pNbre premiers entiers
Prec : pNbre > 0
*/
int somNPremiersEntiers (int pNbre);
// DECLARER ici les fonctions du TP
// (avant le #endif)
// Template de commentaire de fonction :
/*
N : estDiviseur
D : dit si le nombre pNb1 est diviseur de pNb2
E : pNb1 pNb2
S : -
R : retourne vrai si pNb1 est un diviseur
Prec : pNb1>0 et pNb2>=0
*/
bool estDiviseur(int pNb1,int pNb2);
/*
N : estPremier
D : dit si le nombre pNb est premier
E : pNb
S : -
R : retourne vrai si pNb1 est un nombre premier
Prec : pNb>0
*/
bool estPremier(int pNb);
// Cette ligne est à conserver
#endif
- Code:
/**************************************
* Description: Saisie d'un l'intervale
* et calcule la somme la factorielle pour chaque
* entier de cette intervalle.
* Indique si le nombre est premier ou non
* si il est divisible par 5 ou non.
**************************************/
/****************
Jeux d'essais
pour [0,7]
saisir la borne [min] de n
0
saisir la borne [max] de n
7
Factorielle et somme de 0 : fact: 1, somme: 0
0 est divisible par : 5
0 n'est pas premier
Factorielle et somme de 1 : fact: 1, somme: 1
1 n'est pas divisible par : 5
1 n'est pas premier
Factorielle et somme de 2 : fact: 2, somme: 3
2 n'est pas divisible par : 5
2 est premier
Factorielle et somme de 3 : fact: 6, somme: 6
3 n'est pas divisible par : 5
3 est premier
Factorielle et somme de 4 : fact: 24, somme: 10
4 n'est pas divisible par : 5
4 n'est pas premier
Factorielle et somme de 5 : fact: 120, somme: 15
5 est divisible par : 5
5 est premier
Factorielle et somme de 6 : fact: 720, somme: 21
6 n'est pas divisible par : 5
6 n'est pas premier
Factorielle et somme de 7 : fact: 5040, somme: 28
7 n'est pas divisible par : 5
7 est premier Appuyez sur une touche pour continuer...
**/
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
// Pour utiliser les fonctions du TP
#include "factSomPrem.h"
// Commentaire sur l'utilité du programme
int main(void)
{
int nbmin,nb,nbmax,nbf,nbs;
bool divisible, prem;
printf("saisir la borne [min] de n \n");
scanf("%d",&nbmin);
printf("saisir la borne [max] de n \n");
scanf("%d",&nbmax);
if(nbmin>nbmax)
{
nb=nbmin;
nbmin=nbmax;
nbmax=nb;
}
for(nb=nbmin;nb<=nbmax;nb++)
{
nbf=factorielle(nb);
nbs=somNPremiersEntiers(nb);
divisible=estDiviseur(nb,5);
prem=estPremier(nb);
printf("\nFactorielle et somme de %d : fact: %d, somme: %d",nb,nbf,nbs);
if (divisible==1)
{
printf("\n%d est divisible par : 5 ",nb);
}
else
{
printf("\n%d n'est pas divisible par : 5 ",nb);
}
if (prem==1)
{
printf("\n%d est premier ",nb);
}
else
{
printf("\n%d n'est pas premier ",nb);
}
}
system("PAUSE");
return 0;
}