You are on page 1of 3

Département d’Informatique

Module I132 : Algorithmique et programmation 2


Parcours MIP (S3)
22 mars 2020
Pr. S. ANTER

Corrigé du TP No 1
Ex.1 :
1 # include < stdio .h >
2 int parfait ( int n ) {
3 int i , s =0;
4 for ( i =1; i <= n /2; i ++) /* Les diviseurs sont <= n /2 */
5 if ( n % i ==0) s += i ;
6 if ( s == n ) return 1;
7 return 0;
8 }
9 main () {
10 int n ;
11 printf ( " Donner un entier : " ) ;
12 scanf ( " % d " ,& n ) ;
13 if ( parfait ( n ) )
14 printf ( " % d est un nombre parfait \ n " ,n ) ;
15 else
16 printf ( " % d n ’ est pas un nombre parfait \ n " ,n ) ;
17 }

Ex.2 :
1 # include < stdio .h >
2 int somme_it ( int n ) {
3 int i , s =0;
4 for ( i =1; i <= n ; i +=2)
5 s += i ;
6 return s ;
7 }
8 int somme_rec ( int n ) {
9 if ( n ==1) return 1;
10 if ( n %2!=0) return n + somme_rec (n -2) ; /* si n est impair */
11 return somme_rec (n -1) ; /* si n est pair */
12 }
13 main () {
14 int n ;
15 printf ( " Donner un entier : " ) ;
16 scanf ( " % d " ,& n ) ;
17 printf ( " En utilisant somme_it , somme (% d ) =% d \ n " ,n , somme_it ( n )
);
18 printf ( " En utilisant somme_rec , somme (% d ) =% d \ n " ,n , somme_rec (
n));
19 }

Ex.3 :
1 # include < stdio .h >
2 long fact_it ( int n ) {
3 int i , s =1;
4 for ( i =1; i <= n ; i ++)
5 s *= i ;
6 return s ;

1
7 }
8 long fact_rec ( int n ) {
9 if ( n ==0) return 1;
10 return n * fact_rec (n -1) ;
11 }
12 main () {
13 int n ;
14 printf ( " Donner un entier : " ) ;
15 scanf ( " % d " ,& n ) ;
16 printf ( " En utilisant fact_it , % d ! : % ld \ n " ,n , fact_it ( n ) ) ;
17 printf ( " En utilisant fact_rec , % d ! : % ld \ n " ,n , fact_rec ( n ) ) ;
18 }

Ex.4 :
1 # include < stdio .h >
2 # include < math .h >
3 int premier ( int n ) {
4 int i ;
5 for ( i =2; i <= sqrt ( n ) ; i ++)
6 if ( n % i ==0) return 0;
7 return 1;
8 }
9 main () {
10 int n ;
11 printf ( " Donner un entier : " ) ;
12 scanf ( " % d " ,& n ) ;
13 if ( premier ( n ) ) printf ( " % d est un nombre premier \ n " ,n ) ;
14 else printf ( " % d n ’ est pas un nombre premier \ n " ,n ) ;
15 }

Ex.5 :
1 # include < stdio .h >
2 # include < math .h >
3 int u_it ( int n ) {
4 int s =2 , i ;
5 for ( i =0; i < n ; i ++) s +=3;
6 return s ;
7 }
8
9 int u_rec ( int n ) {
10 if ( n ==0) return 2;
11 return u_rec (n -1) +3;
12 }
13 main () {
14 int n ;
15 printf ( " Donner un entier : " ) ;
16 scanf ( " % d " ,& n ) ;
17 printf ( " En utilisant u_it : % d \ n " , u_it ( n ) ) ;
18 printf ( " En utilisant u_rec : % d \ n " , u_rec ( n ) ) ;
19 }

Ex.6 :
1 # include < stdio .h >
2 float pi () {
3 float s =0 , epsilon =0.00001;
4 int k =0;

2
5 do {
6 s += pow ( -1 , k ) /(2* k +1) ;
7 k ++;
8 } while ((1.0/(2* k +1) ) >= epsilon ) ;
9 return 4* s ;
10 }
11
12 main () {
13 printf ( " pi =% f \ n " , pi () ) ;
14 }

You might also like