P3811 【模板】模意义下的乘法逆元

题目:P3811 【模板】模意义下的乘法逆元

【模板】模意义下的乘法逆元

题目背景

这是一道模板题

题目描述

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

这里 $a$ 模 $p$ 的乘法逆元定义为 $ax\equiv1\pmod p$ 的解。

输入格式

一行两个正整数 $n,p$。

输出格式

输出 $n$ 行,第 $i$ 行表示 $i$ 在模 $p$ 下的乘法逆元。

样例 #1

样例输入 #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 $。

输入保证 $ p $ 为质数。

原题链接

思路:
直接套逆元递推公式即可

方法一:

点击查看代码
#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define pii pair<int,int>
#define inf 0x3f3f3f3f
#define ll long long
#define el '\n'
using namespace std;
const int N = 3e6 + 5;
int n, m;
ll inv[N];
void solve()
{
	cin >> n >> m;
	inv[1] = 1;
	cout << 1 << el;
	for (int i = 2; i <= n; i++) {
		inv[i] = m - (m / i * inv[m % i] % m) % m;
		cout << inv[i] << el;
	}
}

int main()
{
	ios;
	solve();
	return 0;
}


posted @ 2024-05-06 13:27  樱岛麻衣的鹿  阅读(11)  评论(0编辑  收藏  举报