zoukankan      html  css  js  c++  java
  • luogu3811 【模板】乘法逆元

    题目大意:给出n,求1~n所有数的乘法逆元。

    乘法逆元的概念是:如果b*rev(b)≡1 (mod p),p与b互质,则rev(b)就是b的模p乘法逆元。乘法逆元往往用于除法取模。

    具体操作详见http://www.cnblogs.com/headboy2002/p/8845986.html

    #include <cstdio>
    using namespace std;
    
    int exgcd(int a, int b, int &x, int &y)
    {
    	if (!b)
    	{
    		x = 1;
    		y = 0;
    		return a;
    	}
    	int d = exgcd(b, a%b, x, y);
    	int tx = x;
    	x = y;
    	y = tx - y*(a / b);
    	return d;
    }
    
    int inv(int a, int p)
    {
    	int x, y;
    	exgcd(a, p, x, y);
    	return (x%p+p)%p;
    }
    
    int main()
    {
    	int n, p;
    	scanf("%d%d", &n, &p);
    	for (int i = 1; i <= n; i++)
    		printf("%d
    ", inv(i, p));
    	return 0;
    }
    

      

  • 相关阅读:
    pod间访问
    Android地图下钻(坑我好久)
    学习进度23
    学习进度22
    人月神话读后感03
    团队介绍
    人月神话读后感02
    学习进度21
    学习进度20
    学习进度19
  • 原文地址:https://www.cnblogs.com/headboy2002/p/8611977.html
Copyright © 2011-2022 走看看