Hexadecimal numbers

You are given a range [L, R]. You are required to find the number of integers X in the range such that GCD(X,F(X))>1 where F(X) is equal to the sum of digits of X in its hexadecimal (or base 16) representation.

Example:

Input: l=5, r= 8
Output: 4

Approach

C++

#include <bits/stdc++.h>
using namespace std;

int gcd(int aint b)
{
    if (b == 0)
        return a;
    return gcd(ba % b);
}

int hexadecimal(int lint r)
{
    int cnt = 0;
    for (int i = li <= ri++)
    {
        int j = i;
        int res = 0;
        while (j)
        {
            res += j % 16;
            j = j / 16;
        }
        if (gcd(ires) > 1)
            cnt++;
    }
    return cnt;
}
int main()
{

    int l = 5r = 8;

    cout << hexadecimal(lr);

    return 0;
}


No comments:

Post a Comment