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;
}
খুবই সহজ একটি প্রোবলেম , যদি - একটু সহজ করে চিন্তা করো ।। তোমায় দুইটা সংখ্যা দেয়া থাকবে ।। যেমন , 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