ट्रैक
/
JavaScript
JavaScript
/
अभ्यास
/
पाइथागोरस त्रिक
पाइथागोरस त्रिक

पाइथागोरस त्रिक

मध्यम

परिचय

आप समस्याएँ हल करने में निपुण हैं और सबसे कठिन गणितीय पहेलियाँ सुलझाने के लिए प्रसिद्ध हैं। एक शाम आपको Triangle Tinkerer नाम के एक आविष्कारक का एक ज़रूरी पत्र मिलता है, जो एक नए और अभूतपूर्व प्रोजेक्ट पर काम कर रहे हैं। पत्र में लिखा है:

प्रिय गणितज्ञ,

मुझे आपकी मदद चाहिए। मैं एक ऐसा उपकरण बना रहा हूँ जो पाइथागोरस त्रिक की अनोखी विशेषताओं पर निर्भर करता है, यानी तीन पूर्णांकों के ऐसे समूह जो समीकरण a² + b² = c² को संतुष्ट करते हैं। यह उपकरण नेविगेशन में क्रांति ला देगा, लेकिन इसके काम करने के लिए मुझे इसे हर ऐसे त्रिक से प्रोग्राम करना होगा जिसमें a, b और c का योग एक निश्चित संख्या N के बराबर हो। इन त्रिकों को हाथ से निकालने में मुझे सालों लग जाएँगे, लेकिन मैंने सुना है कि आप इस काम को आसानी से कर सकते हैं।

समय बहुत कम है। मेरे आविष्कार का भविष्य, और शायद गणितीय नवाचार का भविष्य भी, इस बात पर निर्भर करता है कि आप यह समस्या हल कर पाते हैं या नहीं।

इस काम के महत्व से प्रेरित होकर आप वे सारे पाइथागोरस त्रिक खोजने निकल पड़ते हैं जो इस शर्त को पूरा करते हैं। आपके इस काम का असर बहुत दूर तक पहुँच सकता है और यह विज्ञान और इंजीनियरिंग में नई संभावनाएँ खोल सकता है। क्या आप इस चुनौती का सामना करके इतिहास रच सकते हैं?

निर्देश

पाइथागोरस त्रिक तीन प्राकृतिक संख्याओं का एक समूह है, {a, b, c}, जिसके लिए

a² + b² = c²

होता है और जिसमें

a < b < c

भी होता है।

उदाहरण के लिए,

3² + 4² = 5².

इनपुट के रूप में एक पूर्णांक N दिया गया हो, तो वे सारे पाइथागोरस त्रिक खोजिए जिनके लिए a + b + c = N हो।

उदाहरण के लिए, N = 1000 लेने पर ठीक एक ऐसा पाइथागोरस त्रिक होता है जिसके लिए a + b + c = 1000 हो: {200, 375, 425}.

कार्यान्वयन

डिफॉल्ट रूप से triplets फंक्शन को सिर्फ sum दिया जाता है, लेकिन यह वैकल्पिक रूप से minFactor और/या maxFactor भी ले सकता है। जब ये दिए जाएँ, तो ध्यान रखिए कि त्रिक के हर गुणनखंड का मान कम से कम minFactor और अधिक से अधिक maxFactor हो।

Advanced

अगर आप इसे CLI की मदद से हल कर रहे हैं, तो इसमें बड़ी संख्याओं वाला एक टेस्ट केस है जिसे फिलहाल छोड़ दिया गया है, ताकि हमारे टेस्ट रनर में टाइमआउट न हो। आप चाहें तो .skip हटाकर इसे चालू कर सकते हैं, बस ध्यान रखिए कि इसे चलने में कुछ समय लग सकता है।

GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
JavaScript Exercism

पाइथागोरस त्रिक शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और JavaScript को 37 कॉन्सेप्ट159 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।