拓展欧几里得临时文档5

来源:互联网 发布:手机破解压缩文件软件 编辑:程序博客网 时间:2024/05/01 10:56
#include <stdio.h>#define LL longLL gcd (LL a, LL b)  {      return b ? gcd (b, a%b) : a;  }  void Egcd(LL a, LL b, LL &x, LL &y) {      if (b == 0) {          x = 1; y = 0; return;      }      LL tp;      Egcd (b, a%b, x, y);      tp = x;      x = y;      y = tp - a/b*y;  }     int main() {LL a,b, c,d;while (scanf("%d%d%d", &a, &b,&c) == 3) {LL x, y;d = gcd (a, b); if (c % d != 0){ printf("IMposible\n");continue;} LL ee=c/d; a /= d, b /= d, c /= d;   Egcd (a, b, x, y);  // x *= c;   //尽量让值给y//  x = (x % b + b) % b;                         //x的特解 //  y = (c - a*x) / b;                           //有了x,求对应的y   y*=c;      //尽量让值给x y=(y%a+a)%a; x=(c-b*y)/a; a*=d;b*=d;c*=d;printf("%d * %d + %d * %d = %d\n", a, x, b, y,c);}return 0;}

0 0
原创粉丝点击