एक संख्या n को देखते हुए हमें यह जांचना है कि उसके अंकों का योग संख्या n को विभाजित करता है या नहीं। यह पता लगाने के लिए हमें इकाई के स्थान से शुरू होने वाली सभी संख्याओं का योग करना होगा और फिर संख्या को अंतिम योग से विभाजित करना होगा।
जैसे हमारे पास एक संख्या "521" है, इसलिए हमें इसके अंकों का योग ज्ञात करना होगा जो कि "5 + 2 + 1 =8" होगा, लेकिन 521 बिना कोई शेष छोड़े 8 से विभाज्य नहीं है।
आइए एक और उदाहरण लेते हैं "60" जहां "6+0 =6" जो 60 को विभाजित कर सकता है और कोई शेष नहीं छोड़ेगा।
उदाहरण
Input: 55 Output: No Explanation: 5+5 = 10; 55 not divisible by 10 Input: 12 Output: Yes Explanation: 1+2 = 3; 12 is divisible by 3
नीचे इस्तेमाल किया गया तरीका इस प्रकार है -
इस समस्या को हल करने के लिए हमें इनपुट से प्रत्येक अंक प्राप्त करना होगा और किसी संख्या के प्रत्येक अंक का योग ज्ञात करना होगा, फिर जांचें कि यह संख्या को विभाजित कर रहा है या नहीं।
- इनपुट लें
- प्रत्येक संख्या को इकाई स्थान से लें और इसे एक योग चर में जोड़ें जो शुरू में शून्य होना चाहिए
- इनपुट को संख्या के योग से विभाजित करें।
- परिणाम लौटाएं।
एल्गोरिदम
In function int isDivisible(long int num) Step 1-> Declare and initialize temp = num, sum = 0 Step 2-> Loop While num Declare and initialize k as num % 10 Set sum as sum + k Set num as num / 10 End Loop Step 3-> If temp % sum == 0 then, Return 1 Step 4-> Return 0 End function In main() Step 1-> Declare and initialize num as 55 Step 2-> If isDivisible(num) then, Print "yes " Step 3-> Else Print "no "
उदाहरण
#include <stdio.h> // This function will check // whether the given number is divisible // by sum of its digits int isDivisible(long int num) { long int temp = num; // Find sum of digits int sum = 0; while (num) { int k = num % 10; sum = sum + k; num = num / 10; } // check if sum of digits divides num if (temp % sum == 0) return 1; return 0; } int main() { long int num = 55; if(isDivisible(num)) printf("yes\n"); else printf("no\n"); return 0; }
आउटपुट
यदि उपरोक्त कोड चलाया जाता है तो यह निम्न आउटपुट उत्पन्न करेगा -
No