Exercice 62. Classe Calcul arithmétique:
- Créer une classe Calcul dotée d'un constructeur par défaut (sans paramètres) pouvant servir à effectuer différents calculs sur les nombres entiers.
- Créer au sein de cette classe Calcul une méthode d'instance nommée Factorielle() permettant de calculer la factorielle d'un entier. Tester la méthode en faisant une instanciation sur la classe.
- Créer au sein de la classe Calcul une méthode d'instance nommée Somme() permettant de calculer la somme des n premiers entiers 1+2+3+..+n. Tester la méthode.
- Créer au sein de la classe Calcul une méthode d'instance nommée testPrim() permettant de tester la primalité d'un entier donné. Tester la méthode.
- Créer au sein de la classe Calcul une méthode d'instance nommée testPrims() permettant de tester si deux nombres sont premier entre eux.
- Créer une méthode d'instance tableMult() qui crée et affiche la table de multiplication d'un entier donné. Créer ensuite une méthode d'instance allTablesMult() permettant d'afficher toutes les tables de multiplications des entiers 1, 2, 3, ..., 9.
- Créer une méthode statique listDiv() qui récupère tous les diviseurs d'un entier donné sur une liste Ldiv. Créer une autre méthode listDivPrim() qui récupère tous les diviseurs premiers d'un entier donné.
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
#coding: utf-8 class Calcul: def __init__(self): pass #---Factorielle d'un entier n------------ def factorielle(self, n): j=1 for i in range(1,n+1): j = j*i return j #---Somme des n premiers nombres 1 + 2 + 3 + ... + n---- def somme(self, n): j=1 for i in range(1,n+1): j = j+i return j #---methode qui teste si un nombre est premier ou non------------ def testPrim(self, n): j=0 for i in range(1,n+1): if(n%i==0): j = j + 1 if(j == 2): return True else: return False # ---Methode qui teste si deux nombres entiers sont premiers entre eux------------ def testprims(self , n , m): divCommun = 0 for i in range(1 , n+1): if (n%i == 0 and m%i == 0): divCommun = divCommun + 1 if divCommun == 1: print("Les nombres " , n , " et ", m , " sont premiers entre eux") else: print("Les nombres " , n , " et ", m , " ne sont pas premiers entre eux") #---Methode qui donne la table de multiplication d'un nombre------------- def tableMult(self,k): for i in range(1,10): print(i," x ",k," = ",i*k) #---methode qui donne toutes les tables de multiplication des nombres 1, 2, .., 9 def toutesLesTables(self): for k in range(1,10): print("\nla table de multiplication de : ",k, " est : ") for i in range(1,10): print(i," x ",k," = ",i*k) #----- methode qui donne la liste des diviseurs d'un entier def listDiv(self , n): # initialisation de la liste des diviseurs lDiv = [] for i in range(1 , n+1): if ( n%i == 0): lDiv.append(i) return lDiv # ------liste des diviseurs premiers d'un entier---------------- def listDivPrim(self , n): # initialisation de la liste des diviseurs lDiv = [] for i in range(1 , n+1): if ( n%i == 0 and self.testPrim(i)): lDiv.append(i) return lDiv # Exemple Instanciation Cal = Calcul() Cal.testprims(13 , 7) print("Liste des diviseurs de 18 : ", Cal.listDiv(18)) print("Liste des diviseurs premiers de 18 : ", Cal.listDivPrim(18)) Cal.toutesLesTables() |
Younes Derfoufi
CRMEF OUJDA
1 thought on “Solution Exercice 62: classe python permettant d'effectuer des calculs sur un entier”