কম্পিউটার

C++ ব্যবহার করে একটি সংখ্যার বিজোড় গুণনীয়কের সমষ্টি খুঁজুন।


এই বিভাগে, আমরা দেখব কিভাবে আমরা একটি সংখ্যার সমস্ত বিজোড় মৌলিক গুণনীয়কগুলির যোগফল একটি কার্যকর উপায়ে পেতে পারি। n =1092 বলে একটি সংখ্যা আছে, আমাদের এর সমস্ত গুণনীয়ক পেতে হবে। 1092-এর মৌলিক গুণনীয়কগুলি হল 2, 2, 3, 7, 13৷ সমস্ত বিজোড় গুণনীয়কের যোগফল হল 3+7+13 =23৷ এই সমস্যাটি সমাধান করার জন্য, আমাদের এই নিয়মটি অনুসরণ করতে হবে −

  • সংখ্যাটি 2 দ্বারা বিভাজ্য হলে, সেই গুণনীয়কটিকে উপেক্ষা করুন এবং বারবার সংখ্যাটিকে 2 দ্বারা ভাগ করুন৷
  • এখন সংখ্যাটি বিজোড় হতে হবে। এখন সংখ্যাটির 3 থেকে বর্গমূল পর্যন্ত শুরু করে, সংখ্যাটি যদি বর্তমান মানের দ্বারা বিভাজ্য হয়, তাহলে যোগফলের সাথে গুণনীয়ক যোগ করুন এবং বর্তমান সংখ্যা দিয়ে ভাগ করে সংখ্যা পরিবর্তন করুন তারপর চালিয়ে যান।
  • অবশেষে, অবশিষ্ট সংখ্যাটিও যোগ করা হবে যদি অবশিষ্ট সংখ্যাটি বিজোড় হয়

আরো ভালো ধারণা পেতে অ্যালগরিদম দেখি।

অ্যালগরিদম

printPrimeFactors(n):
begin
sum := 0
   while n is divisible by 2, do
      n := n / 2
   done
   for i := 3 to , increase i by 2, do
      while n is divisible by i, do
         sum := sum + i
         n := n / i
      done
   done
   if n > 2, then
      if n is odd, then
         sum := sum + n
      end if
   end if
end

উদাহরণ

#include<iostream>
#include<cmath>
using namespace std;
int sumOddFactors(int n){
   int i, sum = 0;
   while(n % 2 == 0){
      n = n/2; //reduce n by dividing this by 2
   }
   //as the number is not divisible by 2 anymore, all factors are odd
   for(i = 3; i <= sqrt(n); i=i+2){ //i will increase by 2, to get only odd numbers
      while(n % i == 0){
         sum += i;
         n = n/i;
      }
   }
   if(n > 2){
      if(n%2 == 1)
      sum += n;
   }
   return sum;
}
main() {
   int n;
   cout << "Enter a number: ";
   cin >> n;
   cout <<"Sum of all odd prime factors: "<< sumOddFactors(n);
}

আউটপুট

Enter a number: 1092
Sum of all odd prime factors: 23

  1. C++ ব্যবহার করে একটি স্ট্রিং এর সাবস্ট্রিং এর সংখ্যা খুঁজুন

  2. C++ ব্যবহার করে স্টপিং স্টেশনের সংখ্যা খুঁজুন

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

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