Sunday, July 16, 2017

DCP-382: Prime and Even-Odd Devskill Problem Solution & Logic

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

এটা , খুব একটা মজার প্রোব্লেম - সামান্য ব্রেইন খাটালেই হয়ে যাবে , অনেকেই প্রশ্ন পড়ে মনে করবে যে-
প্রাইম সংখ্যাগুলি --- বোধহয় , 10^18 অবদি - জেনারেট করতে হবে , কিন্তু - সেটার কি কোনো প্রয়োজন আছে ??  তোমাকে , N & M এর মান দেয়া থাকবে , তোমায় বলতে হবে - Nতম প্রাইম+ Mতম প্রাইম এর যোগফল , জোড় হবে ? নাকি , বিজোড় হবে ??

 এটা করার আগে , কিছু বিষয় - খেয়াল রাখি

১) একমাত্র ২ এমন একটি প্রাইম সংখ্যা , যেটা জোড় ।

২) ২ ছাড়া বাকিসব , প্রাইম বিজোড় - কোনো সন্দেহ নাই ।


৩)কোনো জোড় সংখ্যা +কোনো বিজোড় সংখ্যা = কোনো বিজোড় সংখ্যা ।

(  যদি ,  N & M এর যে কোনো একটার  মান 1  হয় - তাহলে ,  Nতম প্রাইম  + Mতম প্রাইম এর যোগফল অবশ্যই  বিজোড় হবে,যেহেতু - 1 তম প্রাইম শুধু জোড় , বাকিসব বিজোড় ।    )


৪) কোনো বিজোড় সংখ্যা + কোনো বিজোড় সংখ্যা = কোনো জোড় সংখ্যা ।
অথবা,  কোনো  জোড় সংখ্যা + কোনো  জোড় সংখ্যা = কোনো জোড় সংখ্যা ।

(  যদি ,  N & M এর মান সমান হয় - তাহলে ,Nতম প্রাইম + Mতম প্রাইম এর যোগফল অবশ্যই জোড় হবে  /  যদি , N & M এর মান সমান নাও হয় তাহলেও , যেহেতু ২ ছাড়া  সব প্রাইম বিজোড় তাই , ২টার যোগফলও জোড় হবে ।  )

 #include<bits/stdc++.h>

using namespace std;



//Nayeem Mollick Joy, Applied Physics & Electronic Engineering, University of Rajshahi.

typedef unsigned long long llu;

int main()

{
    llu n,m;

    while(cin>>m>>n)
    {
        if(m==n )
        {
            cout<<"Even"<<endl;
        }
        else if(m==1||n==1)
        {
            cout<<"Odd"<<endl;
        }
        else{
            cout<<"Even"<<endl;
        }
    }
    return 0;
}


No comments:

Post a Comment