zoukankan      html  css  js  c++  java
  • 乘法逆元(模板)

    乘法逆元定义:

     b存在乘法逆元的充要条件是b与模数m互质 原因:b * x ≡ 1 (mod m) 如果b和m不互质,则 b * x肯定是m的倍数,b * x%m=0

     所以b%m==0 ,b不存在乘法逆元

    1.当n为质数时,可以用快速幂求逆元:

      a / b(整除) ≡ a * x (mod m)

      两边同乘b可得 a ≡ a * b * x (mod m) -> 1 ≡ b * x (mod m)

      同 b * x ≡ 1 (mod m)

      由费马小定理可知,当m为质数时:  b ^ (m - 1) ≡ 1 (mod m)

           拆一个b出来可得 b * b ^ (m - 2) ≡ 1 (mod m)

         所以当n为质数时,b的乘法逆元 x = b ^ (m - 2)%m

    求a的乘法逆元:

    import java.util.*;
    
    public class Main{
            static long quick_pow(long a,long b,long c){
                    long res=1;
                    while(b>0){
                            if((b&1)==1) res=res*a%c;
                            a=a*a%c;
                            b>>=1;
                    }
                    return res;
            }
            public static void main(String[] args) {
                    Scanner scan=new Scanner(System.in);
                    int t=scan.nextInt();
                    while(t-->0){
                            long a=scan.nextLong();
                            long p=scan.nextLong();
                            if(a%p!=0) System.out.println(quick_pow(a,p-2,p));
                            else System.out.println("impossible");
                    }
            }
    }
  • 相关阅读:
    JavaWeb-ajax
    数据库-条件查询和分页
    JSP-EL和JSTL
    ROS的STM32电机驱动
    rosserial_python serial_node.py分析--补遗
    rosserial_python serial_node.py分析
    Python的matplotlib绘图
    kNN算法与python
    利用网售的PID调制工具配置电机PID参数
    mbed的ticker问题
  • 原文地址:https://www.cnblogs.com/qdu-lkc/p/12262827.html
Copyright © 2011-2022 走看看