zoukankan      html  css  js  c++  java
  • 【luogu 3811】【模板】乘法逆元

    题目背景

    这是一道模板题

    题目描述

    给定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

    说明

    1n3×106​​,n<p<20000528

    输入保证 pp 为质数。

    费马小定理:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 #define ll long long
     6 using namespace std;
     7 int n,p;
     8 int fast(ll a,ll b){
     9     ll ans=1;
    10     while(b){
    11         if(b&1)ans=(ans*a)%p;
    12         a=(a*a)%p;
    13         b>>=1;
    14     }
    15     return ans;
    16 }
    17 int main(){
    18     scanf("%d%d",&n,&p);
    19     for(int i=1;i<=n;i++)
    20         printf("%d
    ",fast(i,p-2));
    21     return 0;
    22 }

    扩展欧几里得:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 void ex_gcd(int a,int b,int &x,int &y){
     7     if(b==0){x=1,y=0;return;}
     8     ex_gcd(b,a%b,x,y);
     9     int tmp=x;x=y;y=tmp-(a/b)*y;
    10 }
    11 int main(){
    12     int a,b,x,y;
    13     scanf("%d%d",&a,&b);
    14     for(int i=1;i<=a;i++){
    15         ex_gcd(i,b,x,y);
    16         printf("%d
    ",(x+b)%b);
    17     }
    18     return 0;
    19 }

    线性计算:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 int ans[3000010],n,p;
     7 int main(){
     8     scanf("%d%d",&n,&p);
     9     ans[1]=1;puts("1");
    10     for(int i=2;i<=n;i++){
    11         ans[i]=(long long)(p-p/i)*ans[p%i]%p;
    12         printf("%d
    ",ans[i]);
    13     }
    14     return 0;
    15 }
  • 相关阅读:
    设计模式之迭代模式
    CentOS8 上安装Docker
    设计模式之模板方法模式
    APP内嵌网页使用微信或支付宝的H5支付
    一、Mongodb安装和配置
    一台电脑上配置多个git的ssh key
    ELK搭建(docker环境)
    Elasticsearch7学习笔记
    java通过url获取音视频文件时长
    c语言之链表实现
  • 原文地址:https://www.cnblogs.com/Emine/p/7646786.html
Copyright © 2011-2022 走看看