https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2456
এর চেয়ে , সহজ সমস্যা আর কি হতে পারে ?? তোমায় , দুইটা সংখ্যা দেয়া আছে , তোমায়
এই সংখ্যা দুইটির মাঝে কতগুলো সংখ্যা আছে পূর্ণ বর্গ ?? সেটা বের করতে হবে ???
পারবে না ????
একটা সংখ্যা পূর্ণ বর্গ কি না ?? সেটা কিভাবে , চেক করতে হয় ?? সেটা জানো তো ??
চলো , একবার বুঝে নেই - কিভাবে করতে হবে ????? ধরো তোমায় , একটা সংখ্যা (n) ১০ দেয়া আছে , তাহলে ---- একে যদি sqrt ফাংশনে ফালাইয়া দেই int p = sqrt(n) , তাহলে --- উত্তর কি পাবো ??? p=3.1... মানে , 3 এর পরে আরো কিছু দশমাংশ পাবো , তাই না ?? কিন্তু , যেহেতু p কে int হিসেবে ডিক্লেয়ার করেছি , সুতরাং --- p এর মান দশমাংশ পাবো না । আসলে পাবো - এই ক্ষেত্রে ,
p=3 । এখন , যদি আবার - p*p এর মান বের করে চেক করি , p*p এর মান n এর সমান কি না ??
তাহলেই বুঝতে পারবো যে - n সংখ্যাটি পূর্ণ বর্গ কি না ???
চলো , কোড দেখে আসি - এইবার ,
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t,a,b,c,i,d;
while(scanf("%d %d", &a, &b)==2)
{
if(a==0&&b==0){
break;
}
d=0;
for(i=a;i<=b;i++)
{
c=sqrt(i);
if(c*c==i)
d++;
}
printf("%dn", d);
}
return 0;
}
No comments:
Post a Comment