CINTA第二次作业
a^bmodm的函数求法
写一个模指数运算函数Mod_Exp,输入a、b和m,输出a^b mod m ,即a的b次方模m.
1 | int Mod_Exp(int a, int b,int c) |
求乘法逆元
写一个求乘法逆元的函数Mul_Inverse,输入a和m,求a模m的乘法逆元。提示:要求只输出正整数。
1 | int gcd(int a, int b)//求最大公因子判断是否互为质数 |
4.1
$$ \[\begin{split} \begin{flalign} 设p=23和a=3,使用费尔马小定理计算a^{2019}modp?\\ 解: 因为:p是素数,并且3\not \equiv0(mod\quad23)\\ 所以:\\由费尔马小定理得\\3^{22}\equiv1(mod\quad23) 又:2019=22*91+7\\ 所以:\\3^{2019}\equiv3^{22*91+17}\equiv3^{17}(mod \quad23) \\3^3(mod 23)=4 \\3^6(mod 23)=4*4(mod 23)=16 \\3^{12}(mod 23)=16*16(mod 23)=3 \\3^{15}(mod 23)=3*4(mod 23)=12 \\3^{17}(mod 23)=12*9(mod 23)=16 \end{flalign} \end{split}\]$$
4.5
\[ \begin{split} 请证明13整除2^{70}+3^{70}。[提示:这是一道名为证明题的计算题]\\ 解: 因为:13为素数并且\\2\not \equiv0(mod \quad 13)并且3\not \equiv0(mod 13) \\所以:依据费尔马小定理得: 2^{12}\equiv1(mod \quad 13)\\ 3^{12}\equiv1(mod \quad 13)\\ \\则:2^{\quad{12}*5+10\quad}\equiv2^{10}(mod \quad13)=10 \\3^{12*5+10}\equiv3^{10}(mod \quad13)=3 \\又10+3=13 \\所以13整除2^{70}+3^{70} \end{split} \]
4.6
\[ \begin{split} 使用欧拉定理计算2^{100000}mod\quad55. \\因为:gcd(2,55)=1 \\则:2^{\phi(55)}\equiv1(mod\quad55),\phi(55)=\phi(5)*\phi(11)=4*10=40 \\则:2^{40}\equiv1(mod 55) \\2^{100000}\equiv2^{40*2500}\equiv2^{40^{2500}}\equiv1^{2500}(mod55)=1 \end{split} \]
4.8
\[ \begin{split} 手动计算7^{1000}的最后两位数是多少? 解: \\即计算7^{1000}\mod100 \\因为gcd(7,100)=1 \\所以7^{\phi(100)}\equiv1(mod 100) \\又\phi(100)=\phi(2^2*5^2)=(2^2-2^1)*(5^2-5^1)=40 \\所以:7^{40}\equiv1(mod \quad100) \\7^{1000}=7^{40*25}=7^{\quad{(40)}^{25}\quad}\equiv1^{25}(mod \quad100)=1 \\所以最后两位数为01 \end{split} \]
