मान लीजिए हमें एक बड़ी संख्या दी गई है और हमें यह जांचना है कि वह संख्या 19 से विभाज्य है या नहीं।
उदाहरण के लिए, यदि इनपुट 86982 है, तो आउटपुट "विभाज्य" होगा।
समाधान दृष्टिकोण
हम इस समस्या को पुनरावृत्ति योग विधि (repeated addition method) का उपयोग करके हल करेंगे। इस विधि में हम संख्या के अंतिम अंक को निकालते हैं, उसे 2 से गुणा करते हैं, और परिणाम को शेष संख्या में जोड़ देते हैं। यह प्रक्रिया तब तक दोहराते हैं जब तक हमें दो अंकों की संख्या नहीं मिल जाती जो 19 से विभाज्य हो।
एल्गोरिदम चरण:
- जब तक संख्या 100 से बड़ी या बराबर है (यानी तीन या अधिक अंकों की है):
last_digit = number % 10(अंतिम अंक प्राप्त करें)number //= 10(अंतिम अंक को हटाएं)number += last_digit * 2(अंतिम अंक को 2 से गुणा करके शेष संख्या में जोड़ें)- अंत में जांचें कि क्या संख्या 19 से विभाज्य है:
number % 19 == 0
पायथन कार्यान्वयन
def solve(number):
while number // 100:
last_digit = number % 10
number //= 10
number += last_digit * 2
return number % 19 == 0
number = 86982
if solve(number):
print("विभाज्य")
else:
print("विभाज्य नहीं")
इनपुट
86982
आउटपुट
विभाज्य
व्याख्या:
संख्या 86982 के लिए चरण-दर-चरण गणना:
- 8698 + (2 × 2) = 8702
- 870 + (2 × 2) = 874
- 87 + (4 × 2) = 95
- 95 ÷ 19 = 5 (पूरी तरह विभाज्य)
इसलिए 86982, 19 से विभाज्य है।