一篇文章讲明白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

相关文章
闭区间连续函数的性质+习题课(函数与极限总复习)——“高等数学”
闭区间连续函数的性质+习题课(函数与极限总复习)——“高等数学”
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
784 0
三大微分中值定理证明方法(罗尔定理、拉格朗日中值定理、柯西中值定理)
Stolz定理 【补充知识】Stolz(斯托尔茨)定理(详解➕例题)
Stolz定理 【补充知识】Stolz(斯托尔茨)定理(详解➕例题)
800 0
Stolz定理 【补充知识】Stolz(斯托尔茨)定理(详解➕例题)
L1-1 拉格朗日中值定理 (5 分)
拉格朗日中值定理又称拉氏定理,是微分学中的基本定理之一,它反映了可导函数在闭区间上的整体的平均变化率与区间内某点的局部变化率的关系。拉格朗日中值定理是罗尔中值定理的推广,同时也是柯西中值定理的特殊情形,是泰勒公式的弱形式。
209 0
【运筹学】对偶理论 : 互补松弛性 ( 定理内容 | 定理证明 )
【运筹学】对偶理论 : 互补松弛性 ( 定理内容 | 定理证明 )
1108 0
粗略估计哥德巴赫猜想的成立(伯特兰-切比雪夫定理、质数密度定理)
粗略估计哥德巴赫猜想的成立(伯特兰-切比雪夫定理、质数密度定理)
203 0
Rolle中值定理的两个数学推论证明
Rolle中值定理的两个数学推论证明 中值定理的两个数学推论的证明过程,体现的数学思想比较有趣,我把它备忘记录下来。Rolle中值定理的数学推论1:简单的说吧,就是,假设I区间可微、连续,如果f’(x)=0,那么f(x)=C,C为常数。
960 0
二阶偏导相等的一个充分条件
困扰我这么多年的问题终于解决了:为什么爷爷的爸爸和爸爸的爷爷是同一个人,而奶奶的妈妈和妈妈的奶奶却不是同一个人? 答案:二阶偏导次序不影响结果的前提是导数在区间连续.   [虽然以前看过,但是没有保存]
865 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}...
634 0