题解 P9783 [ROIR 2020 Day1] 平方

题目传送门

过程

显然发现,当 nmod4=2n\bmod4=2 时,不存在这样的 x,yx,y。否则拆分后一定是一个奇数乘以偶数,则必有一个数不是整数。

nmod4=0n\bmod4=0 时,设 n=2a2bn=2a\cdot 2b,则有 (x+y)(xy)=2a2bx=a+b,y=ab(x+y)(x-y)=2a\cdot2b\Rightarrow x=a+b,y=a-b

nmod2=1n\bmod2=1 时,设 n=2k+1n=2k+1,则有 x=k+1,y=kx=k+1,y=k

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
long long n;cin>>n;
if(n==1 or n==4){cout<<"No";return 0;}
if(n%4==2){cout<<"No";return 0;}
cout<<"Yes"<<endl;
if(n%4==0){
n/=4;long long a=2;
while(n%a!=0) a++;
cout<<(a+n/a)<<" "<<(abs(a-n/a));
}
else{
long long a=(n-1)/2;
cout<<(a+1)<<" "<<(a);
}
return 0;
}

题解 P9783 [ROIR 2020 Day1] 平方
https://sunnyli.咕咕咕.eu.org/solution-P9783/
作者
SunnyLi
发布于
2023年10月24日
许可协议