Skip to content

Commit 6137352

Browse files
authored
Added Chinese_Remainder_Theorem.coffee (jainaman224#69)
1 parent 9cff82a commit 6137352

File tree

2 files changed

+54
-1
lines changed

2 files changed

+54
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
inverse = (a, m) ->
2+
m0 = m
3+
x0 = 0
4+
x1 = 1
5+
6+
return 0 if m is 1
7+
8+
while a > 1
9+
q = Math.floor a / m
10+
t = m
11+
m = a % m
12+
a = t
13+
t = x0
14+
x0 = x1 - q * x0
15+
x1 = t
16+
17+
if x1 < 0
18+
x1 += m0
19+
20+
x1
21+
22+
findMinimumDividend = (divisor, remainder) ->
23+
product = 1
24+
25+
for i in [0...divisor.length]
26+
product *= divisor[i]
27+
28+
result = 0
29+
30+
for i in [0...divisor.length]
31+
partialProduct = product / divisor[i]
32+
inverseAns = inverse partialProduct, divisor[i]
33+
result += remainder[i] * partialProduct * inverseAns
34+
35+
result % product
36+
37+
divisor = [3, 4, 5, 7, 11]
38+
remainder = [2, 3, 1, 4, 5]
39+
40+
console.log "Minimum value of dividend is " + findMinimumDividend divisor, remainder
41+
42+
43+
### Output
44+
45+
Minimum value of dividend is 3371
46+
47+
###

Diff for: Chinese_Remainder_Theorem/Chinese_Remainder_Theorem.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def inverse(a, m):
1616

1717
return x1
1818

19-
def findMinimumDividend(divisor, rem):
19+
def findMinimumDividend(divisor, remainder):
2020
product = 1
2121

2222
for i in range(len(divisor)):
@@ -34,3 +34,9 @@ def findMinimumDividend(divisor, rem):
3434
remainder = [2, 3, 1, 4, 5]
3535

3636
print("Minimum value of dividend is " + str(findMinimumDividend(divisor, remainder)))
37+
38+
''' Output
39+
40+
Minimum value of dividend is 4235
41+
42+
'''

0 commit comments

Comments
 (0)