Find the Greatest Divisor for Natural Numbers in a Given Range



In this article, we will explain how to find the greatest divisor that divides all the natural numbers in a given range [L, R]. The task is to identify the largest number that can divide every number between L and R, including both L and R.

For example, in the range [6, 9] (which includes 6, 7, 8, and 9), the GCD is 1 because no number greater than 1 divides all of them.

Now, let's go through the steps to solve this problem.

Approach to Solve the Problem

To solve this problem, we can follow these steps:

  • If L == R: The answer is the number L itself, because the greatest divisor of a single number is the number itself.
  • If L < R: The answer is always 1, because the numbers in the range [L, R] will have multiple factors, and no number greater than 1 divides all of them.

Example

Here's the C++ code that implements this approach, where it checks if L and R are equal. If they are the same, it returns L as the greatest divisor; otherwise, it returns 1.

#include <iostream>
using namespace std;

int findGreatestDivisor(int L, int R) {
    if (L == R) {
        return L;  // If L and R are the same, return L as the greatest divisor
    }
    return 1;  // If L is different from R, the greatest divisor is 1
}

int main() {
    int L, R;
    
    // Take the range input
    cout << "Enter the range [L, R]: ";
    cin >> L >> R;
    
    // Find the greatest divisor
    int result = findGreatestDivisor(L, R);
    
    // Corrected output statement
    cout << "The greatest divisor which divides all numbers in the range [" 
         << L << ", " << R << "] is: " << result << endl;

    return 0;
}

The program outputs the greatest divisor for the given range. For example, with L = 10 and R = 15, the numbers between 10 and 15 (i.e., 10, 11, 12, 13, 14, 15) have no common divisor greater than 1.

Input:
Enter the range [L, R]: 10 
15

Output:
The greatest divisor which divides all numbers in the range [10, 15] is: 1

Time Complexity: O(1), as we are simply checking if L equals R without iterating over the range.

Space Complexity: O(1), as we are only using a few variables for input and output, with no additional space.

Conclusion

In this article, we discussed how to find the greatest divisor that divides all the numbers in a given range [L, R]. The approach is simple: if L and R are equal, the greatest divisor is L; if they are different, the answer is 1. This method provides an optimal solution in constant time.

Updated on: 2025-03-24T15:20:37+05:30

48 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements