平方根

Posted WeiAR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了平方根相关的知识,希望对你有一定的参考价值。

1.平方根(sqrt.pas/c/cpp)
【问题描述】

给出一个正整数n (1<n≤2^31-1),求当x,y都为正整数时,方程 的解中,x最小值为多少?

√n=√x-√y

【输入文件】
输入文件只有一行,一个正整数n。
【输出文件】
输出文件只有一行,即满足条件的最小x的值。
【文件样例】
sqrt.in        sqrt.out
4                 9
【数据规模】
30%的数据满足1<n≤10000;
100%的数据满足1<n≤2^31-1。

采用极限法

根n=(1+x)根n-x根n

即n=((p+x)/p)根n-x/p根n

上下同除x,然后换元,

n=((t+1)/t)根n-1/t根n

y=n/(t*t);

因为y是整数,t从根n下取整,然后直到n%(t*t)==0,求出t结果也就出来了。

 

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int n;
    cin>>n;
    long long p;
    for(p=sqrt(n);p>=1;p--) if(n%(p*p)==0)break;
    long long ans=n*(p+1)*(p+1)/(p*p);
    cout<<ans;
    return 0;
}

 

以上是关于平方根的主要内容,如果未能解决你的问题,请参考以下文章

如何用二分法求平方根???

用于查找平方根的最快汇编代码。需要说明[关闭]

计算某个正整数平方根并按要求输出 代码参考

计算某个正整数平方根并按要求输出 代码参考

MATLAB可视化实战系列(二十八)-贪心算法求快速平方根倒数算法中的“魔术数字”含matlab源代码

Python实验二