You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现平方根相乘后以最简根式形式输出非整数结果

平方根乘法最简根式输出实现方案

两个平方根相乘的核心规则是√a * √b = √(a*b),你已经完成了根号内数值相乘的步骤,接下来只需要对乘积做根式化简即可,全程用整数运算不要转浮点数,就能避免非整数结果出错的问题。

核心化简逻辑

任何正整数都可以拆成「完全平方数 * 不含平方因子的数」的形式,比如90 = 9 * 10,其中9是3的平方,10没法再拆出任何大于1的整数的平方因子。对应到根式上,√90 = √(9*10) = 3√10,完全平方数开根号后放到根号外当系数,剩下的无平方因子数留在根号内即可。

具体实现步骤

  • 第一步:计算两个根号内数值的乘积,记为product,注意做好整数类型的溢出判断,避免数值过大超出存储上限
  • 第二步:遍历提取乘积里的所有平方因子,计算根号外系数和根号内剩余值,核心逻辑参考如下通用代码:
// 输入:根号下的总乘积num
// 输出:coeff为根号外的整数系数,remain为根号内剩余的无平方因子数
def simplify_sqrt(num):
    coeff = 1
    remain = num
    i = 2
    while i * i <= remain:
        if remain % (i * i) == 0:
            coeff *= i
            remain = remain // (i * i)
            // 除完不递增i,因为可能还能继续提取同一个数的平方因子
        else:
            i += 1
    return (coeff, remain)
  • 第三步:根据返回的两个值拼接最终结果:
    • 若remain == 1,说明结果是整数,直接输出coeff即可
    • 若coeff == 1,说明没有能提到根号外的整数,直接输出√{remain}即可
    • 其余情况输出{coeff}√{remain}

示例验证

  • 计算√2 * √8:product=16,化简后coeff=4,remain=1,最终输出4
  • 计算√6 * √15:product=90,化简后coeff=3,remain=10,最终输出3√10
  • 计算√3 * √7:product=21,化简后coeff=1,remain=21,最终输出√21

内容的提问来源于stack exchange,提问作者Praseodymium-141

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 21:48:19