Sunday, August 27, 2017

11461 - Square Numbers Uva Problem Solution & Logic



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