একটি সংখ্যা 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