কম্পিউটার

শুধুমাত্র অ-শূন্য সংখ্যা বিশিষ্ট ব্যাপ্তির মধ্যে সংখ্যার সংখ্যা যার অঙ্কের যোগফল N এবং সংখ্যাটি C++ এ M দ্বারা বিভাজ্য


সংখ্যার একটি পরিসর সংজ্ঞায়িত করার জন্য আমাদেরকে দুটি সংখ্যা দেওয়া হয়েছে START এবং END। লক্ষ্য হল [START,END] পরিসরের সমস্ত সংখ্যা খুঁজে বের করা যার 0 হিসাবে কোন সংখ্যা নেই এবং একটি প্রদত্ত সংখ্যা N এর সমান অঙ্কের যোগফল রয়েছে। সংখ্যাগুলি M

দ্বারা বিভাজ্য

আমরা START থেকে END পর্যন্ত সংখ্যাগুলি অতিক্রম করে এটি করব এবং প্রতিটি সংখ্যার জন্য আমরা একটি while লুপ ব্যবহার করে এর অঙ্কের যোগফল গণনা করব (শুধুমাত্র যদি সমস্ত সংখ্যা শূন্য হয়)। যদি এই যোগফল N এর সমান হয় এবং সংখ্যাটি M দ্বারা বিভাজ্য হয়, তাহলে বৃদ্ধির সংখ্যা।

উদাহরণ দিয়ে বোঝা যাক।

ইনপুট

START=1 END=100 N=9 M=6

আউটপুট

Numbers with digit sum N and divisible by M: 4

ব্যাখ্যা

Numbers 18, 36, 54, 72 have digit sum=9 and divisible by 6. None has 0 as a digit.

ইনপুট

START=100 END=200 N=10 M=2

আউটপুট

Numbers with digit sum N and divisible by M: 4

ব্যাখ্যা

Numbers 118, 136, 154, 172 have digit sum=10 and divisible by 2. None has 0 as a digit.

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

  • আমরা START, END, N এবং M.

    পূর্ণসংখ্যা নিই
  • ফাংশন digitSum(int start, int end, int n, int m) সংখ্যার গণনা digitsum=n দিয়ে দেয় এবং m দ্বারা বিভাজ্য হয় এবং সমস্ত অ-শূন্য সংখ্যা থাকে।

  • এই ধরনের সংখ্যার জন্য প্রাথমিক পরিবর্তনশীল গণনা 0 হিসাবে নিন।

  • পরিবর্তনশীল ডিগসামকে 0

    হিসাবে নিন
  • পরিবর্তনশীল পতাকাকে 0 হিসাবে নিন।

  • লুপ ব্যবহার করে সংখ্যার সীমা অতিক্রম করে। i=start to i=end

  • এখন প্রতিটি সংখ্যার জন্য num=i, যদি num%m==0 (m দ্বারা বিভাজ্য) এগিয়ে যান।

  • while লুপ ব্যবহার করে চেক করুন সংখ্যা>0 কিনা। এবং সংখ্যা খুঁজুন।

  • সংখ্যা=সংখ্যা%10। যদি অঙ্কটি অ-শূন্য হয় ডিগসাম+=অঙ্ক গণনা করুন। পরবর্তী সংখ্যা যোগ করতে num=num/10 কমিয়ে দিন। যদি কোনো সংখ্যা 0 হয় তাহলে ফ্ল্যাগ=0 সেট করুন এবং যখন লুপ ভাঙুন

  • সময় শেষে, পরীক্ষা করুন যদি ( digsum ==n এবং flag==1 )। যদি সত্য বৃদ্ধির সংখ্যা।

  • এখন i বাড়ান m (m এর গুণিতক) দ্বারা।

  • সমস্ত লুপ গণনার শেষে একটি মোট সংখ্যা থাকবে যা শর্তকে সন্তুষ্ট করে।

  • ফলাফল হিসাবে গণনা ফেরত দিন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int digitSum(int start, int end, int n, int m){
   int count = 0;
   int digsum = 0;
   int flag=0;
   for (int i = start; i <= end; i++){
      int num=i;
      digsum=0;
      flag=0;
      if(num%m==0){
         while(num>0){
            int digit=num%10;
            if(digit==0){
               flag=0;
               break;
            }
            digsum+=num%10; //sum of digits
            num=num/10;
            flag=1;
         }
         if(digsum==n && flag==1) //original number is i {
            count++;
            cout<<i<<" ";
         }
         i+=m; //now increment in multiples of m
         i--; // for loop has i++
      }
   }
   return count;
}
int main(){
   int START = 1;
   int END = 100;
   int N = 9;
   int M = 6;
   cout <<"Numbers with digit sum N and divisible by M: "<<digitSum(START,END,N, M);
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Numbers with digit sum N and divisible by M: 4

  1. C++ এ [a,b] রেঞ্জের সমষ্টি সহ একটি অ্যারেতে ট্রিপলেটের সংখ্যা গণনা করুন

  2. C++ এ 1 থেকে n এর মধ্যে মৌলিক সংখ্যার যোগফল বের করার প্রোগ্রাম

  3. শুধুমাত্র C++ এ 3 এবং 8 সংখ্যা সহ সংখ্যায় রূপান্তর করুন

  4. সংখ্যা সহ ন্যূনতম সংখ্যা এবং শুধুমাত্র 7 এবং C++ এ যোগফল দেওয়া হয়েছে