需要平方根的算法提供“余数”

| 我在编写不使用小数的计算器(仅支持有理数),但是我希望能够创建平方根的版本。 当按平方根函数(例如)按数字12时,我只想简化/“减少”平方根,然后将2 * sqrt(3)返回到(2 * 2) * 3并将sqrt(2 * 2)提取为2。 我正在使用biginteger,它具有一个非常好的gcd()方法和一个pow()方法,该方法仅限于正参数(除非您试图完全按照自己的意愿去做,否则这是有意义的。 我可以想出一些迭代的方法来完成此操作,但是使用百位数范围内的数字可能要花费一些时间。 我希望有一些我从未接触过的可爱,简单,非迭代的技巧。 只是为了澄清一下:我打算添加虚数,所以我正在计划这样的结果:
17 + 4i √3  
-----------  
     9
没有长的小数流。     
已邀请:
        本质上,您要问的是找到所有重复的主要因素。由于您要处理的数字范围是几百个数字,因此我在这里大胆猜测一下,通常没有好的方法可以做到这一点。否则,公钥加密将突然处于不稳定的境地。 有许多计算平方根的方法。使用这些,您可以将结果表示为整数加小于1的余数。     
        也许尝试找到小于您的数字的最高完美平方。这将为您提供方程式的一部分,那么您只需要处理其余部分,这就是您的数字与找到的理想平方之间的差。随着数量的增加,这也会降低,但可能不会那么快。     

要回复问题请先登录注册