中南大学2012暑期集训中期检测训练赛-求逆元

简介: 给定正整数x,y,求最小的正整数z使得x*z mod y = 1。

Problem A: 求逆元

Time Limit: 1 Sec   Memory Limit: 2 MB

SUBMIT: 232   Solved: 77

[SUBMIT] [STATUS]


Description


给定正整数x,y,求最小的正整数z使得x*z mod y = 1。


Input


多组数据,每行两个整数x,y 空格隔开。2 <= x, y < 10^6。


Output


输出所求的数,如果小于y的数中不存在这样的数,输出No。


Sample Input


2 3

6 11


Sample Output


2

2


HINT



思路:原方程x*z mod y = 1可转移为:x*z-y*b=1,明显的扩展欧几里德,直接套模板。


#include<stdio.h> 
int exgcd(int a,int b,int &x,int &y)  
{     
  int i,j;     
  if(b==0)     
  {         
    x=1;         
    y=0;         
    return a;     
  }     
  i=exgcd(b,a%b,x,y);     
  j=x;     
  x=y;     
  y=j-a/b*y;     
  return i; 
} 
int main() 
{     
  int a,b,x,y,r;     
  while(scanf("%d %d",&a,&b)!=EOF)     
  {         
    r=exgcd(a,b,x,y);         
    if(r==1)         
    {             
      while(x<0)             
      {                 
        x+=b;                 
        y-=a;             
      }             
      printf("%d\n",x);        
    }
    else            
      printf("No\n");     
  }     
  return 0; 
}



相关文章
|
存储 算法
C国演义 [第十一章]
C国演义 [第十一章]
|
存储 人工智能 算法
【蓝桥杯集训·每日一题】AcWing 3305. 作物杂交
文章目录 一、题目 1、原题链接 2、题目描述 二、解题报告 1、思路分析 2、时间复杂度 3、代码详解 三、知识风暴 Spfa算法
130 0
|
量子技术
100多位作者联手!谷歌用量子计算机造出「时间晶体」,挑战热力学第二定律
近日,谷歌联合几十位物理学家,用量子计算机造出了「时间晶体」。
178 0
100多位作者联手!谷歌用量子计算机造出「时间晶体」,挑战热力学第二定律
|
算法 量子技术
18岁天才华裔少年用一个经典算法,推翻量子加速神话!
一位年仅18岁的华裔少年提出了一种传统计算机AI算法,其运算速度可以与量子计算比肩,相对之前的传统算法实现了运算速度的指数级增长。这一发现不仅推翻了两位量子计算重量级人物的量子加速神话,而且证明了量子算法和经典算法研究之间存在富有成效的相互作用。
1674 0
解救被困传销女演员 助人减肥找老婆 蚂蚁森林又现神功能
近日,一篇《女演员被传销组织拘禁30多天 竟因蚂蚁森林幸运逃离》的报道引发了全网热议。网友纷纷表示:蚂蚁森林功能强大,不仅能帮人减肥、找老婆,还能在关键时刻保命!
5445 0
|
物联网 区块链
2018 展望 | 区块链:第一个高(泡)峰(沫)后,要迈几道坎?
区块链就像个成长中的孩子:该夸的时候要夸,该喂的时候要喂。但该吃的苦头,该碰的壁,也一样少不了。
1375 0