मैं रात के खाने के लिए एक दोस्त के घर पर था और उन्होंने "प्राइम-फैक्टर वेक्टर स्पेस" के विचार का सुझाव दिया। इस स्पेस में पॉजिटिव पूर्णांक को एक वेक्टर के रूप में व्यक्त किया जाता है जैसे कि वेक्टर में n th एलिमेंट की संख्या n n प्राइम को विभाजित करता है। (ध्यान दें कि इसका मतलब है कि हमारे वैक्टर में अनंत संख्या में शब्द हैं।) उदाहरण के लिए 20 है
2 0 1 0 0 0 ...
क्योंकि इसका मुख्य कारक 2 * 2 * 5 है ।
चूंकि प्रधान गुणनखंड अद्वितीय है प्रत्येक संख्या एक वेक्टर से मेल खाती है।
हम उनकी प्रविष्टियाँ जोड़कर वैक्टरों को जोड़ सकते हैं। यह उन संख्याओं को गुणा करने के समान है, जिनसे वे जुड़े हैं। हम स्केलर गुणा भी कर सकते हैं, जो संबंधित संख्या को एक शक्ति में बढ़ाने के लिए समान है।
समस्या यह है कि यह स्थान वास्तव में एक सदिश स्थान नहीं है क्योंकि कोई उलटा नहीं है। यदि हम आगे बढ़ते हैं और व्युत्क्रम जोड़ते हैं और वेक्टर स्थान को बंद करते हैं तो हमारे पास अब वेक्टर के रूप में प्रत्येक सकारात्मक परिमेय संख्या को व्यक्त करने का एक तरीका है। यदि हम इस तथ्य को रखते हैं कि वेक्टर जोड़ गुणन का प्रतिनिधित्व करता है। फिर एक प्राकृतिक संख्या का व्युत्क्रम इसका पारस्परिक है।
उदाहरण के लिए संख्या 20 में वेक्टर था
2 0 1 0 0 0 ...
तो अंश 1/20 इसका विलोम है
-2 0 -1 0 0 0 ...
यदि हम 14/15 की तरह एक अंश से जुड़े वेक्टर को खोजना चाहते हैं तो हम 14 पाएंगे
1 0 0 1 0 0 ...
और 1/15
0 -1 -1 0 0 0 ...
और वेक्टर जोड़कर उन्हें गुणा करें
1 -1 -1 1 0 0 ...
अब जब हमारे पास एक सदिश स्थान है तो हम इसे एक आंतरिक उत्पाद देकर एक आंतरिक उत्पाद के रूप में बदल सकते हैं। ऐसा करने के लिए हम आंतरिक उत्पाद चोरी करते हैं जो वेक्टर रिक्त स्थान को शास्त्रीय रूप से दिया जाता है। दो वैक्टरों के आंतरिक उत्पाद को उनकी शर्तों के युग्मवाचक गुणन के योग के रूप में परिभाषित किया गया है। उदाहरण के लिए 20 · 14/15 की गणना निम्नानुसार की जाएगी
20 = 2 0 1 0 0 0 ...
14/15 = 1 -1 -1 1 0 0 ...
2 0 -1 0 0 0 ... -> 1
एक अन्य उदाहरण के रूप में उत्पाद 2/19 · 4/19
2/19 = 1 0 0 0 0 0 0 -1 0 0 0 ...
4/19 = 2 0 0 0 0 0 0 -1 0 0 0 ...
2 0 0 0 0 0 0 1 0 0 0 ... -> 3
आपका कार्य इस डॉट उत्पाद को करने वाले प्रोग्राम को लागू करना है। इसे सकारात्मक पूर्णांक (अंश और हर) की एक जोड़ी के माध्यम से दो सकारात्मक परिमेय संख्याओं को लेना चाहिए या एक तर्कसंगत प्रकार (फ़्लोट्स की अनुमति नहीं है, क्योंकि वे परिशुद्धता और विभाजन के साथ समस्याएं पैदा करते हैं) और दो के डॉट उत्पाद का प्रतिनिधित्व करने वाले पूर्णांक का उत्पादन करना चाहिए। आदानों।
यह कोड-गोल्फ है इसलिए उत्तर बाइट्स में कम बाइट के साथ बेहतर स्कोर किए जाएंगे।
परीक्षण के मामलों
4 · 4 = 4
8 · 8 = 9
10 · 10 = 2
12 · 12 = 5
4 · 1/4 = -4
20 · 14/15 = 1
2/19 · 4/19 = 3