diff options
author | prashantsinalkar | 2017-10-10 12:27:19 +0530 |
---|---|---|
committer | prashantsinalkar | 2017-10-10 12:27:19 +0530 |
commit | 7f60ea012dd2524dae921a2a35adbf7ef21f2bb6 (patch) | |
tree | dbb9e3ddb5fc829e7c5c7e6be99b2c4ba356132c /3544/DEPENDENCIES/Chapter_4.sci | |
parent | b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b (diff) | |
download | Scilab-TBC-Uploads-7f60ea012dd2524dae921a2a35adbf7ef21f2bb6.tar.gz Scilab-TBC-Uploads-7f60ea012dd2524dae921a2a35adbf7ef21f2bb6.tar.bz2 Scilab-TBC-Uploads-7f60ea012dd2524dae921a2a35adbf7ef21f2bb6.zip |
initial commit / add all books
Diffstat (limited to '3544/DEPENDENCIES/Chapter_4.sci')
-rw-r--r-- | 3544/DEPENDENCIES/Chapter_4.sci | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/3544/DEPENDENCIES/Chapter_4.sci b/3544/DEPENDENCIES/Chapter_4.sci new file mode 100644 index 000000000..9daaaac47 --- /dev/null +++ b/3544/DEPENDENCIES/Chapter_4.sci @@ -0,0 +1,30 @@ +
+//Euclid's extended algorithm to calculate inverse of n modulo p
+
+function [ans]=mod_inv(n,p)
+ p_ = p
+ q = []
+ m = []
+ i=1
+ r = 1
+ while r>=0
+ if i<3
+ m(i,1) = i-1
+ else
+ m(i,1) = m(i-2,1) - m(i-1,1)*q(i-2,1)
+ if m(i,1)<0
+ m(i,1) = m(i,1)+p_
+ end
+ m(i,1) = modulo(m(i,1),p_)
+ end
+ if r==0
+ break
+ end
+ q(i,1) = int(p/n)
+ r = modulo(p,n)
+ p = n
+ n = r
+ i = i+1
+ end
+ ans = m(i,1)
+endfunction
|