मान लीजिए हमें एक संख्या दी गई है और हमें यह जांचना है कि वह संख्या 17 से विभाज्य है या नहीं।
उदाहरण के लिए, यदि इनपुट 99943 है, तो आउटपुट "विभाज्य" होगा।
समाधान दृष्टिकोण
हम इस समस्या को पुनरावृत्ति घटाव विधि (repeated subtraction method) का उपयोग करके हल करेंगे। इस विधि में हम संख्या के अंतिम अंक को निकालते हैं, उसे 5 से गुणा करते हैं, और परिणाम को शेष संख्या में से घटा देते हैं। यह प्रक्रिया तब तक दोहराते हैं जब तक हमें दो अंकों की संख्या नहीं मिल जाती जो 17 से विभाज्य हो।
एल्गोरिदम चरण:
- जब तक संख्या 100 से बड़ी या बराबर है (यानी तीन या अधिक अंकों की है):
last_digit = number % 10(अंतिम अंक प्राप्त करें)number //= 10(अंतिम अंक को हटाएं)number -= last_digit * 5(अंतिम अंक को 5 से गुणा करके शेष संख्या में से घटाएं)- अंत में जांचें कि क्या संख्या 17 से विभाज्य है:
number % 17 == 0
पायथन कार्यान्वयन
def solve(number):
while number // 100:
last_digit = number % 10
number //= 10
number -= last_digit * 5
return number % 17 == 0
number = 99943
if solve(number):
print("विभाज्य")
else:
print("विभाज्य नहीं")
इनपुट
99943
आउटपुट
विभाज्य
व्याख्या:
संख्या 99943 के लिए चरण-दर-चरण गणना:
- 9994 - (3 × 5) = 9979
- 997 - (9 × 5) = 952
- 95 - (2 × 5) = 85
- 85 ÷ 17 = 5 (पूरी तरह विभाज्य)
इसलिए 99943, 17 से विभाज्य है।