## The challenge

Given a Divisor and a Bound , Find the largest integer N , Such That ,

Conditions :

• N is divisible by divisor
• N is less than or equal to bound
• N is greater than 0.

Notes

• The parameters (divisor, bound) passed to the function are only positive values .
• It’s guaranteed that a divisor is Found .Input » Output Examples
 ``````1 `````` ``````maxMultiple (2,7) ==> return (6) ``````

Explanation:

(6) is divisible by (2) , (6) is less than or equal to bound (7) , and (6) is > 0 .

 ``````1 `````` ``````maxMultiple (10,50) ==> return (50) ``````

Explanation:

(50) is divisible by (10) , (50) is less than or equal to bound (50) , and (50) is > 0 .*

 ``````1 `````` ``````maxMultiple (37,200) ==> return (185) ``````

Explanation:

(185) is divisible by (37) , (185) is less than or equal to bound (200) , and (185) is > 0 .

## The solution in C

Option 1:

 ``````1 2 3 `````` ``````int maxMultiple(int divisor, int bound) { return bound / divisor * divisor; } ``````

Option 2:

 ``````1 2 3 `````` ``````int maxMultiple(int divisor, int bound) { return bound - bound % divisor; } ``````

Option 3:

 ``````1 2 3 4 5 6 7 8 9 `````` ``````int maxMultiple(int divisor, int bound) { while(bound>0) { if(bound%divisor==0) break; else bound--; } return bound; } ``````

## Test cases to validate our solution

 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 `````` ``````#include int maxMultiple(int divisor, int bound); Test(Maximum_Multiple, Check_Small_Positives) { cr_assert_eq(maxMultiple(2,7), 6); cr_assert_eq(maxMultiple(3,10), 9); cr_assert_eq(maxMultiple(7,17), 14); } Test(Maximum_Multiple, Larger_Positives) { cr_assert_eq(maxMultiple(10,50), 50); cr_assert_eq(maxMultiple(37,200), 185); cr_assert_eq(maxMultiple(7,100), 98); } ``````