GFG App
Open App
Browser
Continue

# Minimum integer such that it leaves a remainder 1 on dividing with any element from the range [2, N]

Given an integer N, the task is to find the minimum possible integer X such that X % M = 1 for all M from the range [2, N]
Examples:

Input: N = 5
Output: 61
61 % 2 = 1
61 % 3 = 1
61 % 4 = 1
61 % 5 = 1
Input: N = 2
Output: 3

Approach: Find the lcm of all the integers from the range [2, N] and store it in a variable lcm. Now we know that lcm is the smallest number which is divisible by all the elements from the range [2, N] and to make it leave a remainder of 1 on every division, just add 1 to it i.e. lcm + 1 is the required answer.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach` `#include ` `using` `namespace` `std;`   `// Function to return the smallest number` `// which on dividing with any element from` `// the range [2, N] leaves a remainder of 1` `long` `getMinNum(``int` `N)` `{` `    ``// Find the LCM of the elements` `    ``// from the range [2, N]` `    ``int` `lcm = 1;` `    ``for` `(``int` `i = 2; i <= N; i++)` `        ``lcm = ((i * lcm) / (__gcd(i, lcm)));`   `    ``// Return the required number` `    ``return` `(lcm + 1);` `}`   `// Driver code` `int` `main()` `{` `    ``int` `N = 5;`   `    ``cout << getMinNum(N);`   `    ``return` `0;` `}`

## Java

 `// Java implementation of the approach` `class` `GFG {`   `    ``// Function to return the smallest number` `    ``// which on dividing with any element from` `    ``// the range [2, N] leaves a remainder of 1` `    ``static` `long` `getMinNum(``int` `N)` `    ``{` `        ``// Find the LCM of the elements` `        ``// from the range [2, N]` `        ``int` `lcm = ``1``;` `        ``for` `(``int` `i = ``2``; i <= N; i++)` `            ``lcm = ((i * lcm) / (__gcd(i, lcm)));`   `        ``// Return the required number` `        ``return` `(lcm + ``1``);` `    ``}`   `    ``static` `int` `__gcd(``int` `a, ``int` `b)` `    ``{` `        ``if` `(b == ``0``)` `            ``return` `a;` `        ``return` `__gcd(b, a % b);` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `main(String args[])` `    ``{` `        ``int` `N = ``5``;` `        ``System.out.println(getMinNum(N));` `    ``}` `}`   `// This code has been contributed by 29AjayKumar`

## Python3

 `# Python3 implementation of the approach ` `from` `math ``import` `gcd`   `# Function to return the smallest number ` `# which on dividing with any element from ` `# the range [2, N] leaves a remainder of 1 ` `def` `getMinNum(N) : `   `    ``# Find the LCM of the elements ` `    ``# from the range [2, N] ` `    ``lcm ``=` `1``; ` `    ``for` `i ``in` `range``(``2``, N ``+` `1``) :` `        ``lcm ``=` `((i ``*` `lcm) ``/``/` `(gcd(i, lcm))); `   `    ``# Return the required number ` `    ``return` `(lcm ``+` `1``); `     `# Driver code ` `if` `__name__ ``=``=` `"__main__"` `: `   `    ``N ``=` `5``; `   `    ``print``(getMinNum(N)); `   `# This code is contributed by AnkitRai01`

## C#

 `// C# implementation of the approach` `using` `System;`   `class` `GFG {`   `    ``// Function to return the smallest number` `    ``// which on dividing with any element from` `    ``// the range [2, N] leaves a remainder of 1` `    ``static` `long` `getMinNum(``int` `N)` `    ``{` `        ``// Find the LCM of the elements` `        ``// from the range [2, N]` `        ``int` `lcm = 1;` `        ``for` `(``int` `i = 2; i <= N; i++)` `            ``lcm = ((i * lcm) / (__gcd(i, lcm)));`   `        ``// Return the required number` `        ``return` `(lcm + 1);` `    ``}`   `    ``static` `int` `__gcd(``int` `a, ``int` `b)` `    ``{` `        ``if` `(b == 0)` `            ``return` `a;` `        ``return` `__gcd(b, a % b);` `    ``}`   `    ``// Driver code` `    ``public` `static` `void` `Main()` `    ``{` `        ``int` `N = 5;` `        ``Console.WriteLine(getMinNum(N));` `    ``}` `}`   `// This code has been contributed by anuj_67..`

## PHP

 ``

## Javascript

 ``

Output:

`61`

Time Complexity: O(N * log(N) )

Auxiliary Space: O(1), as no extra space has been taken.

My Personal Notes arrow_drop_up