luogu P3811 【模板】乘法逆元
2024-09-08 11:56:03
题目背景
这是一道模板题
题目描述
给定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 \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为素数
#include<cstdio>
#include<algorithm>
#define LL long long
LL inv[3000053];
//int inv[MAXN];
void INV(int a,int p)
{
inv[1] = 1;
for (int i=2; i<=a; ++i)
inv[i] = (LL)((p-(p/i)%p)%p*inv[p%i]%p)%p;
}
int main() {
int n,p;
scanf("%d%d",&n,&p);
INV(n,p);
for(int i=1;i<=n;++i)
printf("%d\n",inv[i]);
return 0;
}
最新文章
- 浅谈html5及其新特性
- 用2263份证件照图片样本测试how-old.net的人脸识别
- JProfiler学习笔记
- jQuery源码-jQuery.fn.attr与jQuery.fn.prop
- C# 遍历类的属性并取出值
- POJ C++程序设计 编程题#2 魔兽世界之二:装备
- 补充:学会Twitter Bootstrap不再难
- Eclipse设置分级折叠显示项目工程路径
- JSONObject和JSONArray的简单使用(json-lib)
- TinyMCE实现简单的本地上传
- C#读书笔记之object类的基本方法
- DTCMS插件的制作实例电子资源管理(四)URL重写
- jetty切换tomcat中文乱码
- Docker系列教程02-MongoDB默认开启鉴权
- ehcache缓存使用
- nodejs的某些api~(三)net模块
- FontAwesome图标选择器
- 10.30 rest_framework总结
- Something on RoIAlign --- basic introduction and implementation
- RabbitMQ使用技巧