crible
de
boolean
de n+1 éléments ainsi que des
varirables d'entiers i
, j
et k
.
Au départ, tous les termes de crible
sont
initialisés à true
.
On considère les boucles suivantes
boucle 1: crible[0]=false; crible[1]=false; for(i = 2 ; i <= n ; i++) if(crible[i]) for(j = 2*i ; j <= n ; j += i) crible[j]=false; boucle 2: crible[0]=false; crible[1]=false; for(i = 2 ; i <= n ; i++) for(j = 2*i ; j <= n ; j += i) crible[j]=false; boucle 3: crible[0]=false; crible[1]=false; for(i = 2 ; i <= n ; i++) if(crible[i]) for(j = i+1 ; j <= n ; j++) if((j%i) == 0) crible[j]=false; boucle 4: crible[0]=false; crible[1]=false; for(i = 2 ; i <= n ; i++) for(j = 2 ; j < i; j++) if((i%j) == 0) crible[i]=false; boucle 5: crible[0]=false; crible[1]=false; for(i = 2 ; i <= n ; i++) { k = (int) Math.sqrt(i); // racine carree de i for(j = 2 ; j <= k ; j++) if((i%j) == 0) crible[i]=false; }A la fin de ces cinq boucles,
crible[i]
indique si i est
premier ou nom.
Quelle est la complexité de ces algorithmes?
static int pgcd(int a,int b)qui calcule le pgcd de deux entiers. Proposer une méthode récursive et une méthode itérative.
static int binomial(int n,int p)
static int[][] tb_binomial(int n)qui retourne une table de tous les coefficients binomiaux jusqu'à n. Quelle est sa complexité?
static int surj(int n,int p)qui calcule le nombre de surjections d'un ensemble de n éléments dans un ensemble de p. On pourra se servir de la relation