如题,自己写了一个二分,来来回回试了很多次就这样行,不理解,哪位DALAO来给我讲解一下orz
m = n - e*d + 2;
while (l < r){
mid = (l+r) / 2;
if (mid*(m-mid) < n) l = mid+1;
else r = mid;
}
大体思路就是二分p,看什么时候满足 n=pq 的条件,但是细节有以下不懂:(为什么非要这样?)
- l<r(为什么非要小于)
- mid*(m-mid)<n(同上)
- l=mid+1和r=mid
蒟蒻太弱了,求讲解orzorz