কম্পিউটার টিউটোরিয়াল

সি++-এ N-এর নিচে দুটি সংখ্যার মাল্টিপলগুলোর যোগফল


তিনটি ইন্টিজার M1, M2, N দেওয়া আছে। N-এর চেয়ে ছোট সংখ্যাগুলোর মধ্যে যেগুলো M1 বা M2-এর মাল্টিপল, তাদের যোগফল বের করতে হবে।

ইনপুট

N = 13, M1 = 4, M2 = 6

আউটপুট

20

ব্যাখ্যা — ৪, ৬, ৮, ১২ (N=13-এর নিচে ৪ ও ৬-এর মাল্টিপল)। যোগফল = ২০।

সিম্পল পদ্ধতি (O(N))

int calcMulSum(int N, int M1, int M2){
    int sum = 0;
    for(int i=0; i

অপ্টিমাইজড পদ্ধতি (O(1)) — গাণিতিক সূত্র

সিরিজের যোগফল সূত্র ব্যবহার: `Sum = (M1-এর মাল্টিপলগুলোর যোগফল) + (M2-এর) - (LCM(M1,M2)-এর)`।

Sum(X) = (n * (n+1) * X) / 2,  where n = N/X

উদাহরণ কোড (অপ্টিমাইজড)

#include <iostream> 
using namespace std; 

int calcMulSum(int N, int M1, int M2){
    N--;
    return ((N/M1)*(1+N/M1)*M1/2) + ((N/M2)*(1+N/M2)*M2/2) - ((N/(M1*M2))*(1+N/(M1*M2))*(M1*M2)/2);
}

int main(){
    int N = 24, M1 = 4, M2 = 7;
    cout << "Sum: " << calcMulSum(N, M1, M2);
    return 0;
}

আউটপুট

The sum of multiples of 4 and 7 below 24 is 102

  1. C++-এ BST-এ Two Sum IV (Two Sum IV - Input is a BST)

  2. দুটি সংখ্যার কমন ডিভাইজার (Common Divisors) বের করা (C++)

  3. C++ প্রোগ্রাম: দুটি সংখ্যা সোয়াপ (Swap) করা

  4. C++ প্রোগ্রাম: দুটি সংখ্যা যোগ করা (Addition)