(inp_arr)
| 89 | |
| 90 | /* Eucladian GCD */ |
| 91 | export function getGCD(inp_arr) { |
| 92 | let gcd_for_two = (a, b) => { |
| 93 | return a == 0?b:gcd_for_two(b % a, a); |
| 94 | }; |
| 95 | |
| 96 | let inp_len = inp_arr.length; |
| 97 | if(inp_len <= 2) { |
| 98 | return gcd_for_two(inp_arr[0], inp_arr[1]); |
| 99 | } |
| 100 | |
| 101 | let result = inp_arr[0]; |
| 102 | for(let i=1; i<inp_len; i++) { |
| 103 | result = gcd_for_two(inp_arr[i], result); |
| 104 | } |
| 105 | |
| 106 | return result; |
| 107 | } |
| 108 | |
| 109 | export function getMod(no, divisor) { |
| 110 | return ((no % divisor) + divisor) % divisor; |
no test coverage detected