Saturday, October 14, 2017

DCP-306: Even or Odd Problem Solution & Logic

https://www.devskill.com/CodingProblems/ViewProblem/306

খুবই সহজ একটি প্রোবলেম , যদি - একটু সহজ করে চিন্তা করো ।। তোমায় দুইটা সংখ্যা দেয়া থাকবে ।। যেমন ,  2   4  তাহলে , তোমায় যেটি করতে হবে , সেটা হলো -- ২য় থেকে চতুর্থ   প্রাইম সংখ্যা অবদি যোগফল জোড় নাকি বিজোড় হবে ?? সেটা বের করে বলতে হবে ।।

তাহলে উপরের টাই আগে করে নেই -------------------------

                          2      3     5     7       11...........................................

তাহলে  ২য় থেকে  পঞ্চম প্রাইম সংখ্যা অবদি যোগফল হবে    3 + 5  + 7   = 15 অরথাত , বিজোড় ।।
আশা করি , প্রশ্ন ক্লিয়ার হয়েছে ।। কিন্তু , এই ভেবে ভয় পেও না যে --- তোমায় অতগুলো প্রাইম সংখ্যা আগে জেনারেট করতে হবে ।। তুমি , জেনারেট না করেও বুঝতে পারবে যোগফল কি হবে ?? জোড় নাকি বিজোড় ???  আমরা জানি , দুনিয়ায় ২ বাদে বাকি সব প্রাইম সংখ্যা বিজোড় ।। তাহলে তুমি কি বুঝতে পারবে না , যখন তোমায় বললো -- ২য় থেকে চতুর্থ   প্রাইম সংখ্যা অবদি যোগফল জোড় নাকি বিজোড় হবে ?? তাহলে , তুমি বুঝতেই পারছো যে - তোমায় যোগ করতে হবে মোট তিন'টা বিজোড় সংখ্যা , তাহলে এখন তুমিই বলো , তিন'টা বিজোড় সংখ্যা যোগ করলে যোগফল কি জোড় হবে ? নাকি বিজোড় হবে ?? অনুরুপভাবে , যদি বলতো ২য় থেকে পঞ্চম প্রাইম সংখ্যা অবদি যোগফল , তাহলে তোমায় মোট চারটি বিজোড় সংখ্যা যোগ করে , তার যোগফল জোড় নাকি বিজোড় ?? সেটা বলতে হবে ।। আশা করি , বিষয়টা ক্লিয়ার হয়েছে , তোমরা লজিক পেয়ে গেছো কি করতে হবে ?? কিন্তু , একটা জিনিস মাথায় রেখো প্রথম প্রাইম সংখ্যাই একমাত্র জোড় সংখ্যা , সুতরাং দেয়া দুটি সংখ্যার একটি যদি 1 হয় , তাহলে এতক্ষণ যা যা লজিক খাটলো , এখন শুধু ঠিক ঠিক তার উলটো হবে , এই আর কি ।। যাই হোক , এখন নিজে নিজে ইমপ্লিমেন্ট করার ট্রাই করো , অন্যথায় নিচে কোড দেয়া আছে , দেখে নাও ----------------------------------------------------------------------



#include<bits/stdc++.h>

using namespace std;

int main()
{

    int T;
    cin>>T;
    unsigned long long int N,M;
    for(int i=1;i<=T;i++)
    {
        cin>>N>>M;
        if(N!=1)
        {
            if((M-N)%2!=0)
            {
                cout<<"Case "<<i<<":";
                cout<<" Even"<<endl;
            }
            else
            {
                cout<<"Case "<<i<<":";
                cout<<" Odd"<<endl;
            }
        }
        else if(N==1)
        {
            if((M-N)%2!=0)
            {
                cout<<"Case "<<i<<":";
                cout<<" Odd"<<endl;
            }
            else
            {
                cout<<"Case "<<i<<":";
                cout<<" Even"<<endl;
            }
        }

    }
    return 0;
}







No comments:

Post a Comment