لأغراض هذه المشكلة ، لا يمكننا فصل المكونات الفردية من الخليط. ومع ذلك ، يمكننا الجمع بين كميات مختلفة من خلائط مختلفة لتشكيل مخاليط بنسب جديدة.
على سبيل المثال ، لنفرض أن لدينا ثلاثة مخاليط بنسب (3: 0: 2) ، (3: 6: 11) و (3: 3: 4). من خلال خلط 10 وحدات من الوحدة الأولى ، 20 وحدة من الثانية و 30 وحدة من الثلث ، نحصل على خليط جديد بنسبة (6: 5: 9) ، حيث: (10 * 3/5 + 20 · 3/20 +) 30 · 3/10: 10 · 0/5 + 20 · 6/20 + 30 · 3/10: 10 · 2/5 + 20 · 11/20 + 30 · 4/10) = (18: 15: 27) = (6: 5: 9)
ومع ذلك ، مع نفس المخاليط الثلاثة ، من المستحيل تكوين النسبة (3: 2: 1) ، لأن مقدار B يكون دائماً أقل من مقدار C.
دعونا ن يكون عدد صحيح موجب. لنفترض أنه لكل ثلاثة أضعاف (أ ، ب ، ج) مع 0، a و b و c ≤ n و gcd (a، b، c) = 1 ، لدينا خليط مع نسبة (a: b: c). اسمحوا M (ن) أن تكون مجموعة من جميع هذه المخاليط.
على سبيل المثال ، يحتوي M (2) على 19 مخلوط مع النسب التالية: {(0: 0: 1) ، (0: 1: 0) ، (0: 1: 1) ، (0: 1: 2) ، ( 0: 2: 1) ، (1: 0: 0) ، (1: 0: 1) ، (1: 0: 2) ، (1: 1: 0) ، (1: 1: 1) ، (1: 1: 2) ، (1: 2: 0) ، (1: 2: 1) ، (1: 2: 2) ، (2: 0: 1) ، (2: 1: 0) ، (2: 1: 1) ، (2: 1: 2) ، (2: 2: 1)}.
دع E (n) هو عدد المجموعات الفرعية لـ M (n) التي يمكن أن تنتج المخلوط بنسبة (1: 1: 1) ، أي الخليط بأجزاء متساوية A و B و C. يمكننا التحقق من E (1) ) = 103، E (2) = 520447، E (10) mod 118 = 82608406 and E (500) mod 118 = 13801403. Find E (000 000 000) mod 118.
euler478()
بإرجاع 59510340.
testString: 'assert.strictEqual(euler478(), 59510340, "euler478()
should return 59510340.");'
```