আলোচনাঃ প্রব্লেমটাতে বলা হয়েছে N সংখ্যক বার দুইটা ইন্টিজার নাম্বার ইনপুট নিতে। ইন্টিজার দুইটার ভ্যালু যখন ০ অ্যান্ড ০ নিব তখন প্রোগ্রাম টারমিনেট করবে। ইন্টিজার দুইটার মধ্যবর্তি কয়টা স্কয়ার রুট নাম্বার আছে তা প্রিন্ট করতে হবে।
উদাহরণঃ ধরাযাক ১ এবং ১০ ইন্টিজার তাহলে এর মধ্যবর্তি স্কয়ার রুট নাম্বার গুলো হলো ১,৪,৯। সুতরাং ৩টা নাম্বার আছে। অর্থাৎ প্রিন্ট হবে ৩।
সল্ভিং টেকনিকঃ ফর লুপের মাধ্যমে আমারা সংখ্যা দুইটার মধ্যবর্তি স্কয়ার রুট নাম্বার বের করব; প্রতিটা স্কয়ার রুট নাম্বারের জন্য কাউন্টারের মান ১ করে বাড়বে।
স্পেশাল কেয়ার ঃ প্রিন্টকরার সময় নিউ লাইন প্রিন্ট করতে হবে। তানাহলে ভুল আন্সার আসবে।
Accepted code:
#include<bits/stdc++.h>
using namespace std;
int main()
{
while(true)
{
int a,c,b,res;
cin>>a>>b;
if(a==0&&b==0)
break;
res=0;
for(int i=a;i<=b;i++)
{
c=sqrt(i);
if(c*c==i)
res++;
}
cout<<res<<endl;
}
return 0;
}
No comments:
Post a Comment