乘法逆元-洛谷-P3811

题目背景#

这是一道模板题

题目描述#

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

输入输出格式#

输入格式:

 

一行n,p

 

输出格式:

 

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

 

输入输出样例#

输入样例#1:

10 13

输出样例#1:

1
7
9
10
8
11
2
5
3
4

说明#

1≤n≤3×10^6  ,  n<p<20000528

输入保证 p 为质数。

这个题比较适合用线性算法

a*m=1(mod m) 称a是m的乘法逆元。

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

 

posted @   xyee  阅读(77)  评论(0编辑  收藏  举报
编辑推荐:
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
阅读排行:
· 为DeepSeek添加本地知识库
· .NET程序员AI开发基座:Microsoft.Extensions.AI
· 精选4款基于.NET开源、功能强大的通讯调试工具
· 数据不出内网:基于Ollama+OneAPI构建企业专属DeepSeek智能中台
· 大模型工具KTransformer的安装
点击右上角即可分享
微信分享提示
主题色彩