去分母得到 xy=xn+yn
xy-xn-yn=0
xy-xn-yn+n^2=n^2
(x-n)(y-n)=n^2
答案就是n^2的约数个数/2(向上取整)…
对不起初中数学老师….
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,ans=1;
int main(){
scanf("%lld",&n);
for(int i=2;(ll)i*i<=n;i++){
int cnt=0;while(n%i==0){cnt++;n/=i;}
ans*=cnt<<1|1;
}if(n>1)ans*=3;
printf("%lld",(ans&1)+(ans>>1));
}