/********************************************************* 
  TD d'Algorithmique IN202  
  ENSTA 
  
  Mardi 7 Novembre 2000 
  
  Exercice 5 : Exponentiation binaire 
    
                                        Guillaume Poupard 
*********************************************************/  
#include <stdio.h> 
  
int puiss1(int a, int b) 
{  
  int p=1; 
  while (b>0)
 
    { 
      if ((b%2)==1)  
        p=p*a; 
      a=a*a;  
      b=b/2; 
    }  
  return p; 
}  
 
int puiss2(int a, int b)  
{ 
  if (b==0) return 1;  
  if ((b%2)==1) 
    return a*puiss2(a*a,b/2);  
  else 
    return puiss2(a*a,b/2);  
} 
  
int main(int argc, char * argv[]) 
{  
int a=atoi(argv[1]); 
int b=atoi(argv[2]);  
printf("%d^%d=%d ou %d\n",a,b,puiss1(a,b),puiss2(a,b)); 
}


syntax highlighted by Code2HTML, v. 0.9.1