Skip to content
Programmingoneonone
Programmingoneonone
  • Home
  • CS Subjects
    • Internet of Things (IoT)
    • Digital Communication
    • Human Values
  • Programming Tutorials
    • C Programming
    • Data structures and Algorithms
    • 100+ Java Programs
    • 100+ C Programs
  • HackerRank Solutions
    • HackerRank Algorithms Solutions
    • HackerRank C problems solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
Programmingoneonone

HackerEarth Numbers II problem solution

YASH PAL, 31 July 2024
In this HackerEarthNumbers II problem solution, we have given two numbers a and b, you have to find the Nth number which is divisible by a or b.
HackerEarth Numbers II problem solution

HackerEarth Numbers II problem solution.

#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <ios>
#include <iosfwd>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <locale>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <typeinfo>
#include <utility>
#include <valarray>
#include <vector>
#include <cctype>
#include <cerrno>
#include <cfloat>
#include <ciso646>
#include <climits>
#include <clocale>
#include <cmath>
#include <csetjmp>
#include <csignal>
#include <cstdarg>
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include<stdio.h>

#define mod 1000000007
#define ll long long
#define nax 100005

using namespace std;


long long findTerm(long long a,long long b,long long lcm,long long value)
{

return (value/a) + (value/b) - (value/lcm);
}


long long solve(long long a,long long b , long long N)
{


long long low = 1;
long long high = 100000000000000000LL;
long long gcd = __gcd(a,b);
long long lcm = (a*b)/gcd;
long long ans;
while(low<=high)
{
long long mid = (low+high)/2;
long long term=findTerm(a,b,lcm,mid);
if(term>=N)
{

ans = mid;
high = mid-1;
}
else
low=mid+1;




}
return ans;



}

int main()
{


int t;
long long a,b,N;
cin>>t;
while(t--)
{

cin>>a>>b>>N;
cout<<solve(a,b,N)<<"n";
}




}

Second solution

#include<bits/stdc++.h>
#define inf 1e18
#define ll long long
using namespace std;
ll a,b,n,l;
ll gcd(ll x,ll y)
{
if(y==0)return x;
else return gcd(y,x%y);
}
bool f(ll x)
{
ll val= x/a + x/b - x/l;
if(val>=n)return 1;
return 0;
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>a>>b;
cin>>n;
ll low=min(a,b),high=inf;
ll ans;
l=(a*b)/gcd(a,b);
while(low<=high)
{
ll mid=(low+high)/2;
if(f(mid))
{
ans=mid;
high=mid-1;
}
else
low=mid+1;
}
cout<<ans<<"n";
}
}
coding problems solutions

Post navigation

Previous post
Next post

Pages

  • About US
  • Contact US
  • Privacy Policy

Programing Practice

  • C Programs
  • java Programs

HackerRank Solutions

  • C
  • C++
  • Java
  • Python
  • Algorithm

Other

  • Leetcode Solutions
  • Interview Preparation

Programming Tutorials

  • DSA
  • C

CS Subjects

  • Digital Communication
  • Human Values
  • Internet Of Things
  • YouTube
  • LinkedIn
  • Facebook
  • Pinterest
  • Instagram
©2025 Programmingoneonone | WordPress Theme by SuperbThemes