列表

详情


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';}

上一题