euclid.cpp

来自「欧几里德算法又称辗转相除法」· C++ 代码 · 共 47 行

CPP
47
字号
//#define P printf//
#include<iostream.h>
//#include<stdio.h>//
#include<math.h>

void main()
{
    int d,f;
    int x_2=0,x_3,y_2=1,y_3,Q;
    int temp;
    cin>>d;
    cin>>f;
  
    x_3=d,y_3=f;
    while(y_3!=0&&y_3!=1)
    {
        Q=x_3/y_3;
    
        temp=y_3;
       
        y_3=x_3-Q*y_3;
    
        x_3=temp;
  
        temp=y_2;
       
        y_2=x_2-y_2*Q;
   
        x_2=temp;
      
  
    }


    if(y_3==0)
        cout<<"没有乘法逆元"<<endl;
    if(y_3==1)
    {
        y_2=(y_2+(abs(y_2/d)+1)*d)%d;
        cout<<f<<"mod"<<d<<"的乘法逆元是"<<y_2<<endl;
    }
    
    //getchar();//
   // getchar();//
    
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?