**Problem**

In NASA, two researchers, Mathew and John, started their work on a new planet, but while practicing research they faced a mathematical difficulty. In order to save the time they divided their work.

So scientist Mathew worked on a piece and invented a number computed with the following formula:

A Mathew number is computed as follows using the formula:

H(n) = n(2n-1)

And scientist John invented another number which is built by the following formula which is called John number.

T(n) = n(n+1)/2

Now Mathew and John are jumbled while combining their work. Now help them combine their research work by finding out number in a given range that satisfies both properties. Using the above formula, the first few Mathew-John numbers are:

1 6 15 28 …

So scientist Mathew worked on a piece and invented a number computed with the following formula:

A Mathew number is computed as follows using the formula:

H(n) = n(2n-1)

And scientist John invented another number which is built by the following formula which is called John number.

T(n) = n(n+1)/2

Now Mathew and John are jumbled while combining their work. Now help them combine their research work by finding out number in a given range that satisfies both properties. Using the above formula, the first few Mathew-John numbers are:

1 6 15 28 …

**Input Format:**

Input consists of 3 integers T1,T2,M separated by space . T1 and T2 are upper and lower limits of the range. The range is inclusive of both T1 and T2. Find Mth number in range [T1,T2] which is actually a Mathew-John number.

Line 1 | T1 T2 M,where T1 is upper limit of the range, T2 is lower limit of the range and M ,where Mth element of the series is required |

**Constraints:**

0 < T1 < T2 < 1000000

**Output Format:**

Print Mth number from formed sequence between T1 and T2(inclusive).

Line 1 | For Valid Input,printPrint Mth number from formed sequence between T1 and T2 Or No number is present at this index For Invalid Input,printInvalid Input |

**Sample Input and Output**

SNo. | Input | Output |
---|---|---|

1 | 90 150 2 | 120 |

2 | 20 80 6 | No number is present at this index |

3 | -5 3 a | Invalid Input |

**Solution :**

import java.util.Scanner; /** * * @author VIK */ public class JumbleWithNumbers { public static void main(String[] args) { int lower = 0; int upper = 0; int n = 0; Scanner sc = new Scanner(System.in); String[] s=sc.nextLine().trim().split(" "); try { boolean flag = false; try { lower = Integer.parseInt(s[0].trim()); } catch (Exception e) { flag = true; } try { upper = Integer.parseInt(s[1].trim()); } catch (Exception e) { flag = true; } try { n = Integer.parseInt(s[2].trim()); } catch (Exception e) { flag = true; } if (flag) { throw new Exception(); } if (lower > upper) { throw new Exception(); } int i = 1; flag = false; int count = 0; while (true) { int nu = i * (2 * i - 1); if (nu < lower) { i++; continue; } if (getMathew(lower,upper,nu)) { count++; if (count == n) { System.out.println(nu); break; } } if (nu > upper) { flag = true; break; } i++; } if (flag) { System.out.println("No number is present at this index"); } } catch (Exception e) { System.out.println("Invalid Input"); } } static boolean getMathew(int lower,int upper,int num) { int i = 1; while (true) { int nu = i * (i + 1); nu /= 2; if (nu < lower) { i++; continue; } if (nu == num) { return true; } if (nu > upper) { break; } i++; } return false; } }

## No comments :

## Post a Comment