1. 程式人生 > >洛谷 P3811 【模板】乘法逆元 如題

洛谷 P3811 【模板】乘法逆元 如題

radi ora tool 逆元 onclick eset article htm set

P3811 【模板】乘法逆元

  • 時空限制1s / 256MB

題目背景

這是一道模板題

題目描述

給定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 < 200005281n3×106,n<p<20000528

輸入保證 pp 為質數。

-----------------------------------------------------------------------------------------------------

推式的求導以後再寫

遞推式:inv[n]=(p-p/n)*inv[p%n]%p //inv[x]表示x對p的逆元

存個板子先:

技術分享
 1 #include<stdio.h>
 2 #include<string.h>
 3 #define maxn 3000010
 4 int read();
 5 int n,p,inv[maxn];
6 int main(){ 7 n=read();p=read(); 8 inv[1]=1; 9 printf("1\n"); 10 for(int i=2;i<=n;i++){ 11 inv[i]=(long long)(p-p/i)*inv[p%i]%p; 12 printf("%d\n",inv[i]); 13 } 14 return 0; 15 } 16 int read(){ 17 int ans=0,f=1;char c=getchar(); 18 while
(0>c||c>9){if(c==-)f=-1;c=getchar();} 19 while(0<=c&&c<=9)ans=ans*10+c-48,c=getchar();return ans*f; 20 }
線性求逆元

洛谷 P3811 【模板】乘法逆元 如題