NC229004. 【模板】乘法逆元
描述
输入描述
一行两个正整数 。,为素数。
输出描述
输出 行,第 行表示 在模 下的乘法逆元。
示例1
输入:
10 13
输出:
1 7 9 10 8 11 2 5 3 4
C++(g++ 7.5.0) 解法, 执行用时: 578ms, 内存消耗: 48624K, 提交时间: 2023-01-18 15:50:27
#include <bits/stdc++.h> using namespace std; long long a[20000528],n,p; int main() { cin>>n>>p; a[1]=1; cout<<1<<endl; for(long long i=2; i<=n; i++) { a[i]=(p-p/i)*a[p%i]%p; printf("%lld\n",a[i]); } return 0; }
pypy3 解法, 执行用时: 1376ms, 内存消耗: 89856K, 提交时间: 2022-05-06 16:06:21
n, p = map(int, input().split()) inv = [0] * (n+1) inv[1] = 1 print(inv[1]) for i in range(2, n + 1): inv[i] = (p - p // i) * inv[p % i] % p print(inv[i])
C++ 解法, 执行用时: 389ms, 内存消耗: 48640K, 提交时间: 2021-12-31 02:10:15
#include<iostream> using namespace std; long r[(int)3e6+1]={0,1},n,p; int main(){cin>>n>>p;for(int i=1;i<=n;i++)cout<<(r[i]=i-1?(p-(p/i*r[p%i]%p))%p:1)<<'\n';}