START, END, N, M চারটি ভেরিয়েবল দেওয়া আছে। লক্ষ্য হল [START, END] রেঞ্জে যেসব সংখ্যায় ০ অঙ্ক নেই, অঙ্কগুলোর যোগফল N, এবং M দ্বারা বিভাজ্য, তাদের সংখ্যা বের করা।
START থেকে END পর্যন্ত লুপে প্রতিটি সংখ্যায় অঙ্ক যোগফল বের করা হয়। ০ অঙ্ক থাকলে বাদ দেওয়া হয়। যোগফল N এবং M দ্বারা বিভাজ্য হলে কাউন্ট বাড়ানো হয়।
ইনপুট: START=1, END=100, N=9, M=6
আউটপুট: শর্ত পূরণকারী সংখ্যা: ৪
ব্যাখ্যা: ১৮, ৩৬, ৫৪, ৭২ — অঙ্ক যোগফল ৯ এবং ৬ দ্বারা বিভাজ্য, শূন্য অঙ্ক নেই।
- START, END, N, M নেওয়া হয়।
digitSum(int start, int end, int n, int m)ফাংশন কাউন্ট রিটার্ন করে।- রেঞ্জে লুপে প্রতিটি সংখ্যায় while লুপ দিয়ে অঙ্ক যোগফল এবং শূন্য অঙ্ক চেক করা হয়।
- শর্ত পূরণ করলে count বাড়ানো হয়।
#includeusing namespace std; int digitSum(int start, int end, int n, int m){ int count = 0; for (int i = start; i <= end; i++){ int num = i, digsum = 0, flag = 1; if(num % m == 0){ while(num > 0){ int digit = num % 10; if(digit == 0){ flag = 0; break; } digsum += digit; num /= 10; } if(digsum == n && flag == 1){ count++; cout << i << " "; } i += m; i--; } } return count; } int main(){ int START = 1, END = 100, N = 9, M = 6; cout << "শর্ত পূরণকারী সংখ্যা: " << digitSum(START, END, N, M); return 0; }
উপরোক্ত কোড রান করলে আউটপুট:
শর্ত পূরণকারী সংখ্যা: ৪