题目背景

这是一道模板题

题目描述

给定n,p求1~n中所有整数在模p意义下的乘法逆元。

输入输出格式

输入格式:

一行n,p

输出格式:

n行,第i行表示i在模p意义下的逆元。

输入输出样例

输入样例#1:

  1. 10 13

输出样例#1:

  1. 1
  2. 7
  3. 9
  4. 10
  5. 8
  6. 11
  7. 2
  8. 5
  9. 3
  10. 4

说明

\(1 \leq n \leq 3 \times 10 ^ 6, n < p < 20000528 1≤n≤3×10^6,n<p<20000528\)

输入保证 p p 为质数。

逆元可以线性求:

inv(i)=((p-p/i)*inv[p%i])%p

也可以扩展欧几里得求

那么就是

ax+p(模数)y=1的解

也可以根据快速幂来求

根据费马小定理

逆元就是a^(p-2)

以上几种方法均需保证p为素数

  1. #include<cstdio>
  2. #include<algorithm>
  3. #define LL long long
  4. LL inv[3000053];
  5. //int inv[MAXN];
  6. void INV(int a,int p)
  7. {
  8. inv[1] = 1;
  9. for (int i=2; i<=a; ++i)
  10. inv[i] = (LL)((p-(p/i)%p)%p*inv[p%i]%p)%p;
  11. }
  12. int main() {
  13. int n,p;
  14. scanf("%d%d",&n,&p);
  15. INV(n,p);
  16. for(int i=1;i<=n;++i)
  17. printf("%d\n",inv[i]);
  18. return 0;
  19. }

luogu P3811 【模板】乘法逆元的更多相关文章

  1. 【洛谷P3811】[模板]乘法逆元

    乘法逆元 题目链接 求逆元的三种方式: 1.扩欧 i*x≡1 (mod p) 可以化为:x*i+y*p=1 exgcd求x即可 inline void exgcd(int a,int b,int &a ...

  2. luogu P3811线性求逆元

    首先扩O:T了一个点(因为上界松),83分. #include <cstdio> using namespace std; int n, p; void exgcd(int a, int ...

  3. 逆元-P3811 【模板】乘法逆元-洛谷luogu

    https://www.cnblogs.com/zjp-shadow/p/7773566.html -------------------------------------------------- ...

  4. P3811 【模板】乘法逆元

    P3811 [模板]乘法逆元 线性递推逆元模板 #include<iostream> #include<cstdio> #include<cstring> #def ...

  5. [洛谷P3811]【模板】乘法逆元

    P3811 [模板]乘法逆元 题意 求1-n所有整数在模p意义下的逆元. 分析 逆元 如果x满足\(ax=1(\%p)\)(其中a p是给定的数)那么称\(x\)是在\(%p\)意义下\(a\)的逆元 ...

  6. 模板【洛谷P3811】 【模板】乘法逆元

    P3811 [模板]乘法逆元 给定n,p求1~n中所有整数在模p意义下的乘法逆元. T两个点的费马小定理求法: code: #include <iostream> #include < ...

  7. 洛谷 P3811 【模板】乘法逆元

    P3811 [模板]乘法逆元 题目背景 这是一道模板题 题目描述 给定n,p求1~n中所有整数在模p意义下的乘法逆元. 输入输出格式 输入格式: 一行n,p 输出格式: n行,第i行表示i在模p意义下 ...

  8. 洛谷——P3811 【模板】乘法逆元

    P3811 [模板]乘法逆元 线性求逆元 逆元定义:若$a*x\equiv1 (\bmod {b})$,且$a$与$b$互质,那么我们就能定义: $x$为$a$的逆元,记为$a^{-1}$,所以我们也 ...

  9. 洛谷—— P3811 【模板】乘法逆元

    https://www.luogu.org/problem/show?pid=3811 题目背景 这是一道模板题 题目描述 给定n,p求1~n中所有整数在模p意义下的乘法逆元. 输入输出格式 输入格式 ...

随机推荐

  1. Python基础(五)——闭包与lambda的结合

    (1)变量的域 要了解闭包需要先了解变量的域,也就是变量在哪一段“上下文”是有效的(类似局部变量和全局变量的区别),举一个很简单的例子.(例子不重要,就是涉及闭包就要时刻关注这个域) def test ...

  2. LeetCode(289)Game of Life

    题目 According to the Wikipedia's article: "The Game of Life, also known simply as Life, is a cel ...

  3. C#语言入门

    1.基础知识 2.数据类型 3.控制语句 4.

  4. hdu 5533

    Dancing Stars on Me Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Ot ...

  5. HDU 5396 区间DP 数学 Expression

    题意:有n个数字,n-1个运算符,每个运算符的顺序可以任意,因此一共有 (n - 1)! 种运算顺序,得到 (n - 1)! 个运算结果,然后求这些运算结果之和 MOD 1e9+7. 分析: 类比最优 ...

  6. Python之code对象与pyc文件(一)

    Python程序的执行过程 我们都知道,C语言在执行之前需要将源代码编译成可执行的二进制文件,也就是将源代码翻译成机器代码,这种二进制文件一旦生成,即可用于执行.但是,Python是否一样呢?或许很多 ...

  7. Zipkin和微服务链路跟踪

    https://cloud.tencent.com/developer/article/1082821 Zipkin和微服务链路跟踪 本期分享的内容是有关zipkin和分布式跟踪的内容. 首先,我们还 ...

  8. [git 学习篇] 关联github和本地创库

    所以,github和本地创库是通过ssh传送,所以要将公钥拷贝到远程创库上(比如我ssh 远程服务器时,先将本地的公钥,拷贝到远程服务器的某个文件上(http://www.cnblogs.com/li ...

  9. linux dd命令创建一定大小的文件

    http://www.cnblogs.com/jikexianfeng/p/6103500.html

  10. [Android Studio篇][1] AS开发中遇到问题汇总

    1 在android新建文件,提示权限不够,增加权限 修改工程下 main/AndroidMainfest.xml增加 <uses-permission android:name="a ...