是否有使用C#编写程序的快速简单的方法,该程序可以查明一个大的数字(如25位数字大的数字)是否是一个完美的平方?
完美的平方是数字:0 ^ 2 = 0,1 ^ 2 = 1,2 ^ 2 = 4,3 ^ 2 = 9,4 ^ 2 = 16,...
您不能将任何25位数字转换为ulong或long或int。但是你可以试一下,如果号码是乌龙
public bool test(ulong num)
{ var sqrt = Math.Sqrt(num);
double dbl = Convert.ToDouble(sqrt);
long dblint = Convert.ToInt64(sqrt);
if (dbl == dblint)
{
return true;
}
return false;
}
这应该可以解决问题
public static bool IsPerfectSquare(BigInteger number)
{
return number.IsPowerOfTwo;
}
编辑:显然,这并不涵盖所有的完美正方形,请不要介意此答案