Yea Dave .. I was actually looking for your response.. Coz it generally have some mathematical background. So, Could U provide us some least Complexity Algo for this same old general and basic problem.
On Thu, Feb 7, 2013 at 11:08 AM, Dave <[email protected]> wrote: > @Gaurav: Does it work for n = 25 or for n = 8? I think you've confused > "perfect square" with "power of two." > > Dave > > On Wednesday, February 6, 2013 11:32:55 PM UTC-6, Gaurav Rana wrote: > >> if(n&(n-1)==0) >> //perfect square >> >> >> On Thu, Feb 7, 2013 at 3:01 AM, Don <[email protected]> wrote: >> >>> The following is a bit faster than the Newton's Method solution I >>> suggest above. It uses a binary square root algorithm as seen here: >>> http://en.wikipedia.org/wiki/**Methods_of_computing_square_** >>> roots#Binary_numeral_system_.**28base_2.29<http://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Binary_numeral_system_.28base_2.29> >>> The value is a perfect square if x ends up being zero. >>> >>> bool isSqr(unsigned int x) >>> { >>> unsigned int res = 0; >>> unsigned int bit = 1 << 30; >>> while(bit > x) bit >>= 2; >>> while(bit) >>> { >>> if (x >= res + bit) >>> { >>> x -= res + bit; >>> res = (res >> 1) + bit; >>> } >>> else >>> { >>> res >>= 1; >>> } >>> bit >>= 2; >>> } >>> return (x == 0); >>> } >>> >>> On Dec 23 2012, 10:37 am, Anil Sharma <[email protected]> >>> wrote: >>> > please suggest some efficient solution to check perfect square >>> condition . >>> > no matter how much large number is... eg..i/p-8949 o/p-93 >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Algorithm Geeks" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to algogeeks+...@**googlegroups.com. >>> >>> For more options, visit >>> https://groups.google.com/**groups/opt_out<https://groups.google.com/groups/opt_out> >>> . >>> >>> >>> >> -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
