কম্পিউটার

C++ এ একটি সংখ্যার সমস্ত গুণনীয়কের বিজোড় সংখ্যার অঙ্কের যোগফল নিয়ে প্রশ্ন


এই প্রোগ্রামে, আমাদের Q প্রশ্ন দেওয়া হয়, প্রতিটি প্রশ্নের একটি ধনাত্মক পূর্ণসংখ্যা N থাকে। আমাদের কাজ হল C++ এ একটি সংখ্যার সমস্ত গুণনীয়কের বিজোড় সংখ্যা অঙ্কের যোগফলের উপর প্রশ্নগুলি সমাধান করার জন্য একটি প্রোগ্রাম তৈরি করা।

সমস্যা বর্ণনা − প্রতিটি প্রশ্নের সমাধান করার জন্য, আমাদের N সংখ্যার সমস্ত গুণনীয়ক খুঁজে বের করতে হবে। তারপর অঙ্কের যোগফলের বিজোড় হিসাবে সমস্ত গুণনীয়ক যোগ করুন। এবং প্রতিটি প্রশ্নের জন্য চূড়ান্ত যোগফল ফেরত দিন।

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,

ইনপুট

Q = 2, queries = {15, 8}

আউটপুট

8 1

ব্যাখ্যা

প্রশ্ন 1 এর জন্য:N =15, 15 এর গুণনীয়ক হল 1, 3, 5, 15।

গুণনীয়কগুলিতে বিজোড় অঙ্কের যোগফল হল 1 + 3 + 5 =8

প্রশ্ন 2 এর জন্য:N =8, 8 এর গুণনীয়ক হল 1, 2, 4, 8।

গুণনীয়কগুলিতে বিজোড় অঙ্কের যোগফল হল 1 =1

সমাধান পদ্ধতি

এই সমস্যা সমাধানের জন্য, আমাদের সমস্ত সংখ্যার বিজোড় অঙ্কের যোগফল করতে হবে। যা থেকে আমরা গুণনীয়ক গণনা করব এবং তারপর ফলাফলের জন্য সেগুলি যোগ করব। অঙ্কের প্রক্রিয়ার এই যোগফল প্রতিটিতে আমরা প্রাক গণনা করা মান ব্যবহার করতে পারি। উদাহরণস্বরূপ, 41 নম্বরের যোগফল 4 এর বিজোড় সংখ্যা + 3 এর বিজোড় সংখ্যার যোগফল হিসাবে পাওয়া যেতে পারে।

oddDigitSum অ্যারে তৈরি করার পরে, আমরা প্রদত্ত সংখ্যাটিকে ভাগ করে এমন সমস্ত সংখ্যা খুঁজে পাব। তারপর, আমরা theoddDigitSum অ্যারে ব্যবহার করে সমস্ত বিজোড় সংখ্যা যোগ করব।

আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,

উদাহরণ

#include <iostream>
using namespace std;
#define N 99999

void calcOddDigitSum(int oddDigitSum[]) {

   for (int i = 1; i < N; i++)
   oddDigitSum[i] = oddDigitSum[i / 10] + (i & 1) * (i % 10);
}

void findFactorSum(int oddDigitSum[], int factorSum[]) {

   for (int i = 1; i < N; i++)
   for (int j = i; j < N; j += i)
   factorSum[j] += oddDigitSum[i];
}

int main(){
   int Q = 3;
   int query[] = { 5, 154, 98 };
   int oddDigitSum[N];
   int factorSum[N];
   calcOddDigitSum(oddDigitSum);
   findFactorSum(oddDigitSum, factorSum);
   for (int i = 0; i < Q; i++)
   cout<<"For query "<<(i+1)<<": The sum of odd number digit sums of all the factors of a number is "<<factorSum[query[i]]<<endl;
   return 0;
}

আউটপুট

For query 1: The sum of odd number digit sums of all the factors of a
number is 6
For query 2: The sum of odd number digit sums of all the factors of a
number is 31
For query 3: The sum of odd number digit sums of all the factors of a
number is 27

  1. C++ তে বিজোড় এবং জোড় সংখ্যার নোড সহ সমস্ত স্তর প্রিন্ট করুন

  2. C++ এ সর্বাধিক সংখ্যক বার হওয়া সমস্ত যোগফল প্রিন্ট করুন

  3. C++ এ জোড় এবং বিজোড় স্থানে একটি সংখ্যার অঙ্কের সমষ্টি খুঁজুন

  4. একটি সংখ্যার বিজোড় গুণনীয়কের যোগফল খুঁজে বের করার জন্য C++ প্রোগ্রাম