binary search implementation math

Please click on ads to support us..

Python Code:

def Solve(ele):
    ans=0
    for i in range(3):
        low,high=0,int(1e9)
        while low<high:
            mid=(low+high+1)>>1
            if mid*(mid+i)>ele:
                high=mid-1
            else:low=mid
        ans+=low
    return ans
def solve():
    l,r=map(int,input().split())
    print(Solve(r)-Solve(l-1))
for _ in range(int(input())):solve()

C++ Code:

#include<bits/stdc++.h>
using namespace std;
#define ll long long 
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
	ll a,b;
	cin>>a>>b;
	ll l=sqrt(1.0L*a),r=sqrt(1.0L*b);
	ll ans=(r-l)*3+(b-r*r)/r-(a-l*l)/l+((a-l*l)%l==0);
	cout<<ans<<endl;
	}
}


Comments

Submit
0 Comments
More Questions

1433C - Dominant Piranha
633A - Ebony and Ivory
1196A - Three Piles of Candies
299A - Ksusha and Array
448B - Suffix Structures
1092B - Teams Forming
1166C - A Tale of Two Lands
544B - Sea and Islands
152B - Steps
1174D - Ehab and the Expected XOR Problem
1511A - Review Site
1316A - Grade Allocation
838A - Binary Blocks
1515D - Phoenix and Socks
1624D - Palindromes Coloring
1552F - Telepanting
1692G - 2Sort
1191A - Tokitsukaze and Enhancement
903A - Hungry Student Problem
52B - Right Triangles
1712A - Wonderful Permutation
1712D - Empty Graph
1712B - Woeful Permutation
1712C - Sort Zero
1028B - Unnatural Conditions
735B - Urbanization
746C - Tram
1278B - A and B
1353D - Constructing the Array
1269C - Long Beautiful Integer