### Problem Statement

A rational number is a number which can be expressed as a ratio of two integers. In addition, all rational numbers can be expressed as a decimal number with some repeating periodic part (in some cases the repeating part is 0). For example 1/7 = 0.1428571428571428... with 142857 repeating itself infinitely. Other fractions have some finite number of non-repeating digits before the periodic part begins. For example, 1/6 = 0.166666... starts with a 1 and then settles into repeating 6's.

Your task is to write a class Decimal with a method find that takes four int's: lower, upper, lowerLength, and upperLength. Your method must find all integers n between lower and upper, inclusive, where the repeating portion of the decimal representation of 1/n has between lowerLength and upperLength digits, inclusive. You should return all of the numbers you find in a int[] sorted in increasing order.

### Definition

 Class: Decimal Method: find Parameters: int, int, int, int Returns: int[] Method signature: int[] find(int lower, int upper, int lowerLength, int upperLength) (be sure your method is public)

### Constraints

-lower and upper will be between 1 and 1000000, inclusive.
-upper will be greater than or equal to lower.
-The difference between upper and lower will be at most 100.
-lowerLength and upperLength will be between 1 to 1000000, inclusive.
-upperLength will be greater than or equal to lowerLength.

### Examples

0)

 `1` `10` `1` `1`
`Returns: { 1,  2,  3,  4,  5,  6,  8,  9,  10 }`
 ```1/1 = 1.00000... 1/2 = 0.50000... 1/3 = 0.33333... 1/4 = 0.25000... 1/5 = 0.20000... 1/6 = 0.16666... 1/8 = 0.12500... 1/9 = 0.11111... 1/10 = 0.10000... ``` Thus, all of the numbers other than 7 eventually settle into a repeating sequence of exactly 1 digit.
1)

 `55` `56` `1` `10`
`Returns: { 55,  56 }`
 ```1/55 = 0.01818... (18 is repeating) 1/56 = 0.017857142857142... (857142 is repeating) ``` Both of these numbers have between 1 and 10 digits in its repeating part.
2)

 `200` `300` `10` `20`
`Returns: { 204,  209,  212,  228,  237,  247,  248,  255,  265,  266,  272,  279,  285 }`
3)

 `999983` `999983` `999982` `999982`
`Returns: { 999983 }`
 The repeating part of 1/999983 is 999982 digits long!

#### Problem url:

http://www.topcoder.com/stat?c=problem_statement&pm=1016

#### Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=4325&pm=1016

lars2520

#### Testers:

alexcchan , brett1479