# HackerEarth Sequences problem solution

In this HackerEarth Sequences problem solution you are given two integers X and Y. your task is to determine the sequence of real numbers with the minimum size such that the sum and product of the numbers in the sequence are X and Y respectively. Also, print the size of the sequence only. if no such sequences exist, then print -1.

## HackerEarth Sequences problem solution.

`#include <bits/stdc++.h>using namespace std;#define ll long long#define pb push_backbool check(int n,int y,int x){    double v = temp(n,x);    return (v >= y );}double temp(int n,int x){    return pow(x*1.0/n, n);}int main() {    int t;    cin>>t;    while(t--) {    int x,y;    cin>>x>>y;    int high = (int)floor(x/exp(1.0));    int low = 1;    if (x == y) cout<<1<<endl;    else if (!check(high,y,x)) cout<<-1<<endl;    else {        while(high - low > 1){            int mid = (high+low)/2;            if (check(mid,y,x)) high = mid;            else low = mid;        }        cout<<high<<endl;      }    }    return 0;}`

### Second solution

`#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e6 + 17;int main(){    ios::sync_with_stdio(0), cin.tie(0);    int t;    cin >> t;    while(t--){        int x, y;        cin >> x >> y;        bool done = 0;        if(x == y)            cout << "1\n";        else{            for(int i = 2; !done && i < 100; i++)                if(pow(x / double(i), i) >= y){                    cout << i << '\n';                    done = 1;            }            if(!done)                cout << "-1\n";        }    }}`