Thursday, 23 June 2022

kaprekar Numbers

 void kaprekarNumbers(long long p, long long q) {

    static int counter =0;
    for(long long i=p; i<=q; i++)
    {
        std::string i_str = to_string(i);
        int d = i_str.length();
        long long sq = i*i;
        std::string sq_str = to_string(sq);
        std::string l = sq_str.substr(0,sq_str.length()-d);
        std::string r = sq_str.substr(sq_str.length()-d, d);
        int left = atoll(l.c_str());
        int right = atoll(r.c_str());
        if ( (left + right) == i)
        { std::cout << i <<" ";
          counter++;
        }
    }
    if(counter == 0)
     std::cout << "INVALID RANGE" <<std::endl;
    else
    std::cout << std::endl;
}