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 = 5Output:61

61 % 2 = 1

61 % 3 = 1

61 % 4 = 1

61 % 5 = 1Input:N = 2Output: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 <bits/stdc++.h>` `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

`<?php` `// PHP implementation of the approach` `// Function to return the smallest number` `// which on dividing with any element from` `// the range [2, N] leaves a remainder of 1` `function` `getMinNum(` `$N` `)` `{` ` ` `// Find the LCM of the elements` ` ` `// from the range [2, N]` ` ` `$lcm` `= 1;` ` ` `for` `(` `$i` `= 2; ` `$i` `<= ` `$N` `; ` `$i` `++)` ` ` `$lcm` `= ((` `$i` `* ` `$lcm` `) / (__gcd(` `$i` `, ` `$lcm` `)));` ` ` `// Return the required number` ` ` `return` `(` `$lcm` `+ 1);` `}` `function` `__gcd(` `$a` `, ` `$b` `)` `{` ` ` `if` `(` `$b` `== 0)` ` ` `return` `$a` `;` ` ` `return` `__gcd(` `$b` `, ` `$a` `% ` `$b` `);` `}` `// Driver code` `$N` `= 5;` `echo` `(getMinNum(` `$N` `));` ` ` `// This code has been contributed by ajit....` `?>` |

**Output:**

61

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

**Auxiliary Space: **O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.