একটি সংখ্যা n দেওয়া থাকলে, n-এর সব ডিজিট n কে ভাগ করে কিনা সেটি চেক করতে হবে। অর্থাৎ যদি সংখ্যাটি 'xy' হয়, তবে x ও y উভয়কেই n কে ভাগ করতে হবে।
নমুনা
ইনপুট - 24
আউটপুট - Yes
ব্যাখ্যা: 24 % 2 == 0, 24 % 4 == 0
কন্ডিশনাল স্টেটমেন্ট ব্যবহার করে প্রতিটি ডিজিট নন-জিরো এবং সংখ্যাকে ভাগ করে কিনা চেক করা হয়। সংখ্যাটির প্রতিটি ডিজিট ওভার ইটারেট করতে হয় এবং সেই ডিজিট দিয়ে বিভাজ্যতা চেক করতে হয়।
উদাহরণ কোড
#include <stdio.h>
int main() {
int n = 24;
int temp = n;
int flag = 1;
while (temp > 0) {
int r = n % 10; // ভুল: n%10 হবে শেষ ডিজিট, কিন্তু temp দিয়ে লুপ চলছে
// সঠিক: int r = temp % 10;
if (!(r != 0 && n % r == 0)) {
flag = 0;
}
temp /= 10;
}
if (flag == 1)
printf("সংখ্যাটি তার অঙ্কগুলো দিয়ে বিভাজ্য");
else
printf("সংখ্যাটি তার অঙ্কগুলো দিয়ে বিভাজ্য নয়");
return 0;
}
আউটপুট
সংখ্যাটি তার অঙ্কগুলো দিয়ে বিভাজ্য
নোট: উপরের কোডে একটি ছোট বাগ আছে:
int r = n % 10;হওয়া উচিতint r = temp % 10;। অন্যথায় একই ডিজিট বারবার চেক হবে।