Vous êtes sur la page 1sur 5

Modules utiles type entier

➢ Calcul du factoriel n!

Algorithme Python
Fonction fact (n: entier): entier def fact(n):
Début f=1
F 1 for i in range(2,n+1):
Pour i de 2 à n Faire f=f*i
FF*i return f
Fin pour
Retourner F
Fin
➢ Calcul de xn (n  0)
Algorithme Python Remarque
Fonction Puissance (x, n: entier): entier def puissance(x,n): Si n<0, le traitement sera :
Début P=1 Fonction Puissance (x, n: entier): réel
P 1 for i in range(1,n+1): Début
Pour i de 1 à n Faire P=P*x P 1
PP*x return P Pour i de 1 à abs(n) Faire
Fin pour PP*x
Retourner P Fin pour
Fin Retourner (1/P)
Fin
➢ Vérifier si un entier n est premier ou non
Un nombre n est premier s’il est divisible que par 1 et par lui-même.
Algorithme Python
Fonction premier (n: entier): booléen def premier(n):
Début if (n==1):
Si (n=1)alors v=False
V  Faux else:
Sinon i=2
V  vrai v=True
i2 while(v==True)and(i<=(n//2)):
Tantque(v=vrai) ET (i<=n div2) Faire if (n%i==0):
Si (n mod i = 0) alors v=False
V  Faux else: i=i+1
Sinon i  i + 1 return v
Finsi
Fin tantque
Fin si
Retourner V)
Fin
Ou bien: Un nombre n est premier s’il est divisible que par 1 et par lui-même, ainsi il admet 2 diviseurs seulement
Algorithme Python
Fonction premier (n: entier): booléen def premier(n):
Début Sd=1
Sd 1 v=False
V Faux for i in range(1,(n//2)+1):
Pour i de 1 à (n div 2) Faire if (n%i==0):
Si (n mod i =0) alors Sd=Sd+i
Sd  Sd +1 v=(Sd==2)
Finsi return v
Fin pour
V  (Sd=2)
Retourner V
Fin
1
➢ Calculer la somme des chiffres d’un entier n
Pour calculer la somme des chiffres de n, on le convertit en chaine
Algorithme Python
Fonction Somme_chif (n: entier): entier def Somme_chif(n):
Début S=0
S 0 ch=str(n)
ch  convch(n) for i in range(len(ch)):
Pour i de 0 à long(ch)-1 Faire S=S+int(ch[i])
S  S+ valeur(ch[i]) return S
Fin pour
Retourner S
Fin
Ou bien: Pour calculer la somme des chiffres de n, on additionne les restes de la division par 10
Algorithme Python
Fonction Somme_chif (n: entier): entier def Somme_chif (n):
Début S=0
S 0 while(n!=0):
Tantque (n≠0) Faire S=S+(n%10)
S  S+ (n mod 10) n=n//10
n  n div 10 return S
Fin tantque
Retourner S
Fin
➢ Calculer de PGCD de deux entiers a et b
1ère méthode : calcul de pgcd en utilisant la méthode d’Euclide
Algorithme Python
Fonction PGCD_Euclide (a,b: entier) : entier def pgcd_Euclide (a,b) :
Début while(b!=0)do
Tantque(b≠0) Faire r=a % b
r  a mod b a=b
ab b=r
br return a
Fin tantque
Retourner a
Fin
2ème méthode : calcul de pgcd en utilisant la méthode de différences (Exemple : PGCD(22,6)= PGCD(16,6) = PGCD(10,6)
= PGCD(4,6) = PGCD(4,2)= PGCD(2,2) = 2, d’où PGCD(22,6)= 2)
Algorithme Python
Fonction PGCD_dif (a,b: entier) : entier def pgcd_dif (a,b) :
Début while(a!=b)do
Tantque(a≠b) Faire if (a>b):
Si (a>b) alors a =a-b
a  a-b else:
Sinon b  b-a b=b-a
Fin si return a
Fin tantque
Retourner a
Fin
➢ Calculer de PPCM de deux entiers a et b
Algorithme Python
Fonction PPCM (a,b: entier) : entier def PPCM (a,b):
Début i=1
i 1 while((a*i)%b!=0):
Tantque((a*i) mod b≠0) Faire i=i+1
i  i+1 return (a*i)
Fin tantque
Retourner (a*i)
Fin
2
Ou bien:
Algorithme Python
Fonction PPCM (a,b: entier) : entier def ppcm(a,b):
Début if (a<b):
Si (a<b) alors min=a
min  a max=b
max  b else:
Sinon min b min=b
max a max=a
Finsi i=1
i 1 x=max
x  max while(max%min !=0):
Tantque(max mod min≠0) Faire i=i+1
i  i+1 max=x*i
max  x*i return x
Fin tantque
Retourner x
Fin
➢ Décomposition en facteurs premiers d’un entier n
1ère méthode : représenter la décomposition sous forme de chaine
Algorithme Python
Fonction fact_prem (n: entier) : chaine def fact_prem(n):
Début ch=""
ch  "" i=2
i 2 while(n!=1):
Tantque(n≠1) Faire if(n%i==0):
Si (n mod i=0) alors ch=ch+str(i)+"*"
ch  ch+convch(i)+ "*" n=n//i
n  n div i else: i=i+1
Sinon i  i+1 ch=ch[0:len(ch)-1]
Finsi return ch
Fin tantque
ch  souschaine(ch,0,long(ch)-1)
Retourner ch
Fin
Remarque: après les divisions successives on obtient une chaine dont le dernier caractère est *, ainsi on doit l’effacer
ce pour cela on a utilisé ch  souschaine(ch,0,long(ch)-1)
2ème méthode : représenter la décomposition sous forme de tableau
Algorithme Python
Procedure fact_prem (n: entier;@x :entier;@ T:tableau de 50 entiers) from numpy import*
Début T=array([int]*50)
x  -1 def fact_prem(n,x,T):
i 2 x=-1
Tantque(n≠1) Faire i=2
Si (n mod i=0) alors while(n!=1):
x  x+1 if(n%i==0):
T[x]  i x=x+1
n  n div i T[x]=i
Sinon i  i+1 n=n//i
Finsi else: i=i+1
Fin tantque
Fin

3
➢ Convertir un nombre n de la base 10 vers une base B
Algorithme Python
Fonction conversion (n, B: entier) : chaine def conversion(n,B):
Début ch=""
ch  "" while(n!=0):
Tantque(n≠0) Faire R =n % B
R n mod B ch =str(R)+ch
ch  convch(R)+ ch n=n//B
n  n div B return ch
Fin tantque
Retourner ch
Fin
Remarque : si on veut convertir un nombre décimal vers la base binaire, le traitement sera :
Fonction conversion (n: entier) : chaine
Début
ch  ""
Tantque(n≠0) Faire
R n mod 2
ch  convch(R)+ ch
n  n div 2
Fin tantque
Retourner ch
Fin
➢ Convertir un nombre nb de la base B vers une base 10
Algorithme Python
Fonction conv_10 (ch: chaine) : entier def conv_10(ch):
Début d=0
d0 for i in range(len(ch)-1,-1,-1):
Pour i de 0 à long(ch)-1 Faire if ('0'<=ch[i]<='9'):
Si (ch[i] є ["0".."9"]) alors x=int(ch[i])
x  valeur(ch[i]) else:
Sinon x  ord(ch[i])-55 x=ord(ch[i])-55
Finsi d=d+x*puissance(B,(len(ch)-1-i))
d  d + x*puissance(B,long(ch)-1-i) return d
Finpour
Retourner d
Fin
Remarque : on a utilisé la fonction puissance dont le traitement est le suivant :
Fonction puissance (a,b: entier) : entier
Début
P 1 def puissance(a,b) :
Pour j de 1 à b Faire P=1
P  P*a for j in range(1,b+1) :
Finpour P=P*a
Retourner P return P
Fin
➢ Calcul de suite
Exemple : calculer le nème terme avec (1≤n≤50) de la suite U définie par : U0 = 1
U1 = 1
Un = Un-1 + 2*Un-2
1ère méthode : calcul des termes en utilisant un tableau
Algorithme Python
Fonction suite (n: entier) : entier def suite1(n):
Début T=array([int]*50)
T[0] 1 T[0]=1
T[1] 1 T[1]=1
Pour i de 2 à (n-1) Faire for i in range(2,n):
T[i]  T[i-1]+ (2*T[i-2]) T[i]=T[i-1]+(2*T[i-2])
Fin pour return T[n-1]
Retourner T[n-1]
Fin

4
2ème méthode : calcul des termes sans tableau
Algorithme Python
Fonction suite (n: entier) : entier def suite(n):
Début u0=1
u0 1 u1=1
u11 for i in range(2,n):
Pour i de 2 à (n-1) Faire u=u0+(2*u1)
u  u0+ (2*u1) u0=u1
u0  u1 u1=u
u1  u return u
Fin pour
Retourner u
Fin

➢ Calcul de la somme des carrés premiers entiers naturels


Exemple : calculer la somme S=1+22+32+42+…..+n2

Algorithme Python
Fonction somme (n : entier) : entier def somme(n):
Début S=0
S0 for i in range(1,n+1):
Pour i de 1 à n Faire S=S+(i* i)
S  S+ (i*i) return S
Fin pour
Retourner S
Fin

Vous aimerez peut-être aussi