数论——乘法逆元

一、乘法逆元定义

乘法逆元,是指数学领域群G中任意一个元素a,都在G中有唯一的逆元a',具有性质a×a'=a'×a=e,其中e为该群的单位元。

例如:4关于1模7的乘法逆元为多少?

4X≡1 mod 7

这个方程等价于求一个X和K,满足

4X=7K+1

其中X和K都是整数。

若ax≡1 mod f, 则称a关于1模f的乘法逆元为x。也可表示为ax≡1(mod f)。

当a与f互素时,a关于模f的乘法逆元有解。如果不互素,则无解。如果f为素数,则从1到f-1的任意数都与f互素,即在1到f-1之间都恰好有一个关于模f的乘法逆元。

例如,求5关于模14的乘法逆元:

14=5*2+4

5=4*1+1

说明5与14互素,存在5关于14的乘法逆元。

1=5-4=5-(14-5*2)=5*3-14

因此,5关于模14的乘法逆元为3。

 

二、题目描述

数论——乘法逆元

 

 三、代码

#include<iostream>
#include<cstdio>
using namespace std;
int n,m;
long long inv[4000000];
int main()
{
    scanf("%d %d",&n,&m);
    inv[1]=1;
    inv[0]=0;
    for(int i=2;i<=n;i++)
    {
        inv[i]=(m-m/i)*inv[m%i]%m;
    }
    for(int i=1;i<=n;i++)
    {
        printf("%lld\n",inv[i]);
    }
    return 0;
}

 

上一篇:计数训练之一


下一篇:使用CA签发的服务器证书搭建Tomcat双向SSL认证服务