0% ont trouvé ce document utile (0 vote)
77 vues7 pages

Programmes C pour calculer factorielles et nombres premiers

Transféré par

yassine achabe
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
77 vues7 pages

Programmes C pour calculer factorielles et nombres premiers

Transféré par

yassine achabe
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Abdalmalik Assaadi Année universitaire : 2020/2021

Faculté des Sciences Tétouan SMIA3


Département d’Informatique TD

Série 2
Exercice 1
1. Ecrire u programme qui permet de calculer le factoriel d'un entier N en respectant que
0!=1.

N! = 1*2*3*...* (N-1)*N

a) Utilisez while,

#include<stdio.h>

int i,n,fact=1;

main()

printf("entrer la valeur de n");

scanf("%d",&n);

i=1;

while(i<=n)

fact=fact*i;//ou bien fact*=i;

i++;}

printf("\n %d! = %d",n,fact);

b) Utilisez for.

#include<stdio.h>

int i,n,fact=1;

main()
Université Abdalmalik Assaadi Année universitaire : 2020/2021
Faculté des Sciences Tétouan SMIA3
Département d’Informatique TD

printf("entrer la valeur de n");

scanf("%d",&n);

for(i=1;i<=n;i++)

fact=fact*i;//ou bien fact*=i;

printf("\n %d! = %d",n,fact);

2. Ecrire un programme qui permet de calculer la somme :

1 + 2! + 3! + ⋯ + N!

#include<stdio.h>

int i,n,fact=1,som=0;

main()

printf("entrer la valeur de n");

scanf("%d",&n);

for(i=1;i<=n;i++)

fact=fact*i;//ou bien fact*=i;

som+=fact;//ou bien som=som+fact;

printf("\n somme de factoriel de %d premiers therme est %d",n,som);

}
Université Abdalmalik Assaadi Année universitaire : 2020/2021
Faculté des Sciences Tétouan SMIA3
Département d’Informatique TD

Exercice 2

1. Ecrire un programme qui teste si un nombre entier est premier ou non.

#include<stdio.h>
int n,i;
main()
{
printf("entrer le nombre n");
scanf("%d",&n);
i=2;
while (i<n/2&&n%i!=0)
i++;
if(n%i==0)
printf("%d n'est pas premier",n);
else //cad i>=n/2, on a pas trouvé un diviseur
printf("%d est premier",n);
}
2. Modifier le programme pour qu’il affiche :
a. Tous les nombres premiers inférieurs à 10000.
#include<stdio.h>
int n,i;
main()
{
printf("2\n"); // le nombre 2 est premier
for(n=3;n<10000;n++)/*puisque la valeur initiale de i est 2 si on
commence de n=2, 2 va etre non premier*/
{
i=2;
while (i<n/2&&n%i!=0)
i++;
if(n%i!=0) //si on sort de la boucle sans trouver un diviseur de n
printf("%d \n",n);
}
}

b. La somme des nombres premiers inférieurs à 10000.


#include<stdio.h>
int n,i,som;
main()
{
Université Abdalmalik Assaadi Année universitaire : 2020/2021
Faculté des Sciences Tétouan SMIA3
Département d’Informatique TD

som=2;// som est initialisé à 2 car le nombre 2 est premier


for(n=3;n<1000;n++)/*puisque la valeur initiale de i est 2 si on commence
de n=2 2 va etre non premier*/
{
i=2;
while (i<n/2 && n%i!=0)
i++;
if(n%i!=0)//si on sort de la boucle sans trouver un diviseur de n
som+=n; //ou bien som=som+n;
}
printf("la somme des nombres premers inferieur à 10000 est %d",som);
}

Exercice 3
Ecrivez un programme qui lit N nombres entiers au clavier et qui affiche leur somme, leur produit et leur
moyenne. Choisissez un type approprié pour les valeurs à afficher. Le nombre N est à entrer au clavier.

La première méthode avec tableau : on utilise tableau pour enregistrer les differents nombres avant
de les utiliser.

#include<stdio.h>

int n,i, T[60],som=0,prod=1; //on utilise tableau pour enregistrer les valeur

float moy;

main()

printf("entrer le nombre d'elements");

scanf("%d",&n);

for(i=1;i<=n;i++)/*puisque la valeur initiale de i est 2 si on commence

de n=2 2 va etre non premier*/

printf("entrer le %d eme elements",i);

scanf("%d",&T[i]); // les differents elements sont enregistrés

som+=T[i]; //ou bien som=som+n;

prod*=T[i];//ou bien prod=prod*n;


Université Abdalmalik Assaadi Année universitaire : 2020/2021
Faculté des Sciences Tétouan SMIA3
Département d’Informatique TD

moy=(float)som/n;

printf("\n la somme des %d nombres saisis est %d",n,som);

printf("\n le produit des %d nombres saisis est %d",n,prod);

printf("\n la moyenne des %d nombres saisis est %.2f",n,moy);

2éme méthode : on utilise une seule vatriable nommé A pour enregistrer chaque valeur saisie, on
l’ajoute directement à la somme et on la,mutiplie par produit et apres lorsque on saisie une autre
valeur cette valeur est écrasée.

Si par exemple les valeurs à saisir sont 11, 5,4.

Pour la première itération :

11 Som=som+A=0+11=11
A Prod=prod*A=1*11=11

Pour la deuxième itération :

5 Som=som+A=11+5=16
A Prod=prod*A=11*5=55

La valeur de A qui a été égale à 11 est écrasé et la valeur de A est devenue égale à 5

Pour la troisième itération :

4 Som=som+A=16+4=20
A Prod=prod*A=55*4=220

La valeur de A qui a été égale à 5 est écrasé et la valeur de A est devenue égale à 4.
Université Abdalmalik Assaadi Année universitaire : 2020/2021
Faculté des Sciences Tétouan SMIA3
Département d’Informatique TD

#include<stdio.h>

int n,i,A,som=0,prod=1;

float moy;

main()

printf("entrer le nombre d'elements");

scanf("%d",&n);

for(i=1;i<=n;i++)/*puisque la valeur initiale de i est 2 si on commence

de n=2 2 va etre non premier*/

printf("entrer le %d eme elements",i);

scanf("%d",&A);

som+=A; //ou bien som=som+n;

prod*=A;//ou bien prod=prod*n;

moy=(float)som/n;

printf("\n la somme des %d nombres saisis est %d",n,som);

printf("\n le produit des %d nombres saisis est %d",n,prod);

printf("\n la moyenne des %d nombres saisis est %.2f",n,moy);

Exercice 4
Calculez le N-ième terme UN de la suite de FIBONACCI qui est donnée par la relation de
récurrence:

U1=1
U2=1
UN=UN-1 + UN-2 (pour N>2)

#include<stdio.h>
int n,Un,U,V;
main()
{
Université Abdalmalik Assaadi Année universitaire : 2020/2021
Faculté des Sciences Tétouan SMIA3
Département d’Informatique TD

printf("entrer les valeurs de a, b et c\t");


scanf(" %d",&n);
if(n==0)
Un=1;
else if (n==1)
Un=1;
else
{

V=1; //la valeur initiale de Un-2 pour n=2 c la valeur de U0


U=1; //la valeur initiale de Un-1 pour n=2 c la valeur de U1

for(int i=2;i<=n;i++)
{
Un=U+V; // U represente Un-1 et V represente Un-2
V=U; /*pour preparation à l'iteration suivante la nouvelle Un-2 sera égale à Un-1
actuelle*/
U=Un; /*pour preparation à l'iteration suivante la nouvelle Un-1 serav égale à Un
actuelle*/
}
}
printf("le %d eme therme de la serie de fibonacci est %d",n,Un);

Vous aimerez peut-être aussi