检查数字是否为完全平方数(数字大于15位)

Check if the number a perfectSquare (number has more than 15 digits)

本文关键字:数字 大于 方数 15位 是否 检查      更新时间:2023-10-16

我想计算一个超过15位的数字的平方根如果可能的话100位的话那就太棒了

number like 100000000000000

目前我正在使用C与整数作为数据类型

int IsPerfectSquare(int number)
{
   if (number< 0)
   return 0;
   int root = (round(sqrt(number)));
    if(number == (root * root))
    {        
       return 1;    
    }    
    else
    {        
      return 0;    
    }
}

语言没有障碍。我也可以用c#编程

谢谢:)

在c#中,您可以使用decimal获得最多29位数字,BigInteger获得任意多位数字。

然而,您需要一种不同的技术来判断100位BigInteger是否是完全平方数,因为据我所知,没有现成的"根"函数。

C中整数的大小与平台有关,因此不能保证它可以容纳多少位数字。您可以查看GNU Multiple Precision数学库来处理c中的大数。

在c++中,可以使用下面的函数检查long double类型可以保存多少个大值:

 std::cout << std::numeric_limits<long double>::digits10 << std::endl;

如果你真的想用100数字来处理数字,你需要编写你自己的BigInteger类