diff --git a/src/main/java/formula/Product.java b/src/main/java/formula/Product.java
index 71018f56b0af701eeedc05743004fc448a61cb95..e3b9498682b968f638db83909e9631a9e9d6941f 100644
--- a/src/main/java/formula/Product.java
+++ b/src/main/java/formula/Product.java
@@ -1,21 +1,30 @@
 package formula;
 
 public class Product implements Formula {
-    private Formula x;
-    private Formula y;
+    private Formula[] formulas;
 
-    public Product(Formula x, Formula y) {
-        this.x = x;
-        this.y = y;
+    // Constructeur prenant un tableau de formules
+    public Product(Formula... formulas) {
+        this.formulas = formulas;
     }
 
     @Override
     public String asString() {
-        return "(" + x.asString() + "*" + y.asString() + ")";
+        StringBuilder sb = new StringBuilder("(");
+        for (int i = 0; i < formulas.length; i++) {
+            sb.append(formulas[i].asString());
+            if (i < formulas.length - 1) sb.append("*");  // Ajouter un "*" entre les formules
+        }
+        sb.append(")");
+        return sb.toString();
     }
 
     @Override
     public double asValue() {
-        return x.asValue() * y.asValue();
+        double product = 1;
+        for (Formula formula : formulas) {
+            product *= formula.asValue();
+        }
+        return product;
     }
 }
diff --git a/src/main/java/formula/Sum.java b/src/main/java/formula/Sum.java
index 481e3a14adcb2705a47148dd8cc263c50ec5ed8c..32dc2a991fef164fece6f1a5dccd51c30040300f 100644
--- a/src/main/java/formula/Sum.java
+++ b/src/main/java/formula/Sum.java
@@ -1,22 +1,30 @@
 package formula;
 
 public class Sum implements Formula {
-    private Formula x;
-    private Formula y;
+    private Formula[] formulas;
 
-    public Sum(Formula x, Formula y) {
-        this.x = x;
-        this.y = y;
+    // Constructeur prenant un tableau de formules
+    public Sum(Formula... formulas) {
+        this.formulas = formulas;
     }
 
     @Override
     public String asString() {
-        return "(" + x.asString() + "+" + y.asString() + ")";
+        StringBuilder sb = new StringBuilder("(");
+        for (int i = 0; i < formulas.length; i++) {
+            sb.append(formulas[i].asString());
+            if (i < formulas.length - 1) sb.append("+");  // Ajouter un "+" entre les formules
+        }
+        sb.append(")");
+        return sb.toString();
     }
 
     @Override
     public double asValue() {
-        return x.asValue() + y.asValue();
+        double sum = 0;
+        for (Formula formula : formulas) {
+            sum += formula.asValue();
+        }
+        return sum;
     }
 }
-