使用C#查找大数是否是理想的平方数

问题描述 投票:-3回答:2

是否有使用C#编写程序的快速简单的方法,该程序可以查明一个大的数字(如25位数字大的数字)是否是一个完美的平方?

完美的平方是数字:0 ^ 2 = 0,1 ^ 2 = 1,2 ^ 2 = 4,3 ^ 2 = 9,4 ^ 2 = 16,...

c# math numbers square largenumber
2个回答
0
投票

您不能将任何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;
    }

-1
投票

这应该可以解决问题

public static bool IsPerfectSquare(BigInteger number)
{
    return number.IsPowerOfTwo;
}

编辑:显然,这并不涵盖所有的完美正方形,请不要介意此答案

© www.soinside.com 2019 - 2024. All rights reserved.