يبدأ لاعبان بقطعة من المربعات البيضاء ، ويتخذان أدوارًا بديلة. في كل دور ، يختار اللاعب اثنين من المربعات البيضاء المتجاورة ويرسمهما باللون الأسود. اللاعب الأول الذي لا يستطيع أن يتحرك يخسر.
إذا كانت n = 1 ، فلا توجد تحركات صالحة ، لذلك يخسر اللاعب الأول تلقائيًا. إذا كانت n = 2 ، فهناك حركة واحدة صالحة ، وبعدها يخسر اللاعب الثاني. إذا كانت n = 3 ، فهناك حركات صالحة ، لكن كلاهما يترك وضعًا يخسر فيه اللاعب الثاني. إذا كانت n = 4 ، فهناك ثلاث حركات صالحة للاعب الأول. يمكنها الفوز باللعبة عن طريق رسم الساحتين الأوسطتين. إذا كانت n = 5 ، فهناك أربع حركات صالحة للاعب الأول (كما هو موضح أدناه باللون الأحمر) ؛ ولكن بغض النظر عن ما تفعله ، يفوز اللاعب الثاني (الأزرق).
لذا ، بالنسبة إلى 1 ≤ n ≤ 5 ، هناك 3 قيم لـ n يمكن للاعب الأول فرض الفوز فيها. وبالمثل ، بالنسبة إلى 1 ≤ n ≤ 50 ، هناك 40 قيمة لـ n يمكن للاعب الأول فرض الفوز فيها.
من أجل 1 000 n ≤ 000 000 1 ، ما هو عدد قيم n التي يمكن للاعب الأول أن يفوز فيها؟
euler306()
بإرجاع 852938.
testString: 'assert.strictEqual(euler306(), 852938, "euler306()
should return 852938.");'
```