记录一下中国剩余定理的代码
2017-07-13 22:26
489 查看
#include <stdio.h> #include<iostream> using namespace std; #define ll long long /*int exgcd(int a,int b,int &x ,int &y) { int d; if(b==0) { d=a; x=1; y=0; } else { d=exgcd(b,a%b,y,x); y=y-(a/b)*x; } return d; }*/ void exgcd(int a, int b, int &x, int &y){ //根据欧几里德定理 if(b == 0){//任意数与0的最大公约数为其本身。 x = 1; y = 0; }else{ int x1, y1; exgcd(b, a%b, x1, y1); if(a*b < 0){//异号取反 x = - y1; y = a/b*y1 - x1; }else{//同号 x = y1; y = x1 - a/b* y1; } } } int main() { int n; int a[11]; int m[11]; scanf("%d",&n); int mm=1; for(int i=1;i<=n;i++) { scanf("%d %d",&a[i],&m[i]); mm*=a[i]; } int ans=0; for(int i=1;i<=n;i++) { int x,y; exgcd(mm/a[i],-a[i],x,y); ans+=mm/a[i]*x*m[i]; } printf("%d",(ans+mm)%mm); }
相关文章推荐
- 中国剩余定理 【CRT】 【记录】
- POJ 1006 Biorhythms [中国剩余定理] 超短代码
- 中国剩余定理的讲解 + 代码
- 中国剩余定理(模板+代码)
- POJ1006: 中国剩余定理的完美演绎
- 数论-中国剩余定理
- 中国剩余定理(Chinese Remainder Theorem)
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- pku1061(扩展欧几里德算法,中国剩余定理,模线性方程)
- VB和VC格式化代码的一些方法,记录一下,不记老忘记
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 中国剩余定理
- 中国剩余定理
- 中国剩余定理:一类初数题的通用解法(除数,余数问题)(转载)
- 中国剩余定理
- 中国剩余定理