一篇文章讲明白LOJ6465.二平方和定理

简介: 一篇文章讲明白LOJ6465.二平方和定理

SOL:

由费马二平方和定理,解是存在且唯一的。

那么x在高斯整数意义下(在高斯整数意义下,唯一分解定理同样成立),有两个互扼的非平凡约数。a+bi 与 a-bi、

(a+bi)(a-bi)=aa+bb=x,可见a和b就是我们要求的答案。

我们找一个数k,使 x| kk+1 ,那么 x|(k+i)(k-i)

又因为gcd(a,b)=1,gcd(k,1)=1;

所以gcd(k+i,k-i)=1(这样的写法其实不严谨,我只是表示k+i与k-i互质)

gcd(a+bi,a-bi)=1

故gcd(x,k+i)=a+bi 或 a-bi

k的话,可以随机找。

高斯整数上的gcd,可以类比整数上的gcd。

#include

#define LO __int128

#define LL long long

#define pii pair

#define x first

#define y second

using namespace std;

LL qsm(LL x,LL y,LL mo){

static LL anw;

for (anw=1,x%=mo;y;y]=1,x=(LO)xx%mo) if (y1) anw=(LO)anwx%mo;

return anw;

}//代码效果参考:http://www.ezhiqi.com/zx/art_2166.html

pii operator + (pii a,pii b){

return pii(a.x+b.x,a.y+b.y);

}

pii operator - (pii a,pii b){

return pii(a.x-b.x,a.y-b.y);

}

pii operator (pii a,pii b){

return pii(a.xb.x-a.yb.y,a.xb.y+a.yb.x);

}

pii operator % (pii a,pii b){

LO fm=LO(b.x)b.x+LO(b.y)b.y;

LO aa=LO(a.x)b.x+LO(a.y)b.y;

LO bb=-LO(a.x)b.y+LO(a.y)b.x;

return a-pii(llround(aa/(long double)fm),llround(bb/(long double)fm))b;

}

pii gcd(pii a,pii b){

if (b.x==0b.y==0) return a;

return gcd(b,a%b);

}//代码效果参考:http://www.ezhiqi.com/bx/art_3235.html

int T; LL x,p,k; pii L;

int rand(){

static int X=23333; return X^=X[5,X^=X]17,X^=X[13;

}

signed main () {

scanf("%d",T);

while (T--) {

scanf("%lld",x);

while (1) {

p=rand()%(x-2)+2;

if (qsm(p,x-11,x)==x-1){

k=qsm(p,x-12,x);

break;

}

}

L=gcd(pii(x,0),pii(k,1));

L.x=abs(L.x),L.y=abs(L.y);

if (L.x>L.y) swap(L.x,L.y);

printf("%lld %lld\n",L.x,L.y);

} return 0;

}//代码效果参考:http://www.ezhiqi.com/bx/art_2637.html

相关文章
|
算法
算法:试证明求平方根的牛顿迭代法一定收敛
算法:试证明求平方根的牛顿迭代法一定收敛
146 0
算法:试证明求平方根的牛顿迭代法一定收敛
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
709 0
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
L1-1 拉格朗日中值定理 (5 分)
拉格朗日中值定理又称拉氏定理,是微分学中的基本定理之一,它反映了可导函数在闭区间上的整体的平均变化率与区间内某点的局部变化率的关系。拉格朗日中值定理是罗尔中值定理的推广,同时也是柯西中值定理的特殊情形,是泰勒公式的弱形式。
200 0
Rolle中值定理的两个数学推论证明
Rolle中值定理的两个数学推论证明 中值定理的两个数学推论的证明过程,体现的数学思想比较有趣,我把它备忘记录下来。Rolle中值定理的数学推论1:简单的说吧,就是,假设I区间可微、连续,如果f’(x)=0,那么f(x)=C,C为常数。
952 0
[再寄小读者之数学篇](2014-11-19 关于平方数的交叉和的两个代数等式)
For $n\geq 1$ to be an integer, $$\bex (2n)^2-(2n+1)^2+\cdots+(4n)^2 =-(4n+1)^2+\cdots+(6n)^2, \eex$$ $$\bex (2n+1)^2-(2n+2)^2+\cdots+(4n-1)^2 =-(4n)^2+(4n+1)^2-\cdots+(6n-1)^2.
765 0
|
机器学习/深度学习
[再寄小读者之数学篇](2014-10-18 利用 Lagrange 中值定理求极限)
试求 $$\bex \vlm{n}n^2\sex{x^\frac{1}{n}-x^\frac{1}{n+1}},\quad x>0. \eex$$   解答: $$\beex \bea \mbox{原极限} &=\vlm{n}n^2\cdot x^\xi\ln x\sex{\frac{1}{n}...
632 0
[再寄小读者之数学篇](2014-07-16 任意阶导数在零处为零的一个充分条件)
设 $f(x)$ 在 $\bbR$ 上任意阶可导, 且 $$\bex \forall\ n\in\bbZ^+,\ f\sex{\frac{1}{n}}=0. \eex$$ 试证: $f^{(n)}(0)=0$.
868 0
[再寄小读者之数学篇](2014-07-16 与对数有关的不等式)
试证: $$\bex (1+a)\ln (1+a)+(1+b)\ln (1+b)0. \eex$$   提示:  对函数 $f(x)=x\ln x$, 有 $$\bex f'(x)=\ln x+1,\quad f''(x)=\frac{1}{x}>0,\quad (x>0).
650 0
[再寄小读者之数学篇](2014-07-16 二阶中值)
设 $f(x)$ 在 $[a,b]$ 上二阶可微, 试证: 对任意 $c\in (a,b)$, 存在 $\xi\in (a,b)$ 使得 $$\bex \frac{f''(\xi)}{2}=\frac{f(a)}{(a-b)(a-c)} +\frac{f(b)}{(b-a)(b-c)}+\frac{f(c)}{(c-a)(c-b)}.
591 0
[再寄小读者之数学篇](2014-06-28 证明级数几乎处处收敛)
设 $f\in L(\bbR)$, 试证: $$\bex \vsm{n}f(n^2x) \eex$$ 在 $\bbR$ 上几乎处处收敛到一 Lebesgue 函数. 证明: 由 $f\in L(\bbR)$ 知 $|f|\in L(\bbR)$ (see [程其襄, 张奠宙, 魏国强, 胡善文, ...
739 0
下一篇
无影云桌面