# Modulo và GCD ## Modulo Phép chia lấy phần dư có những tính chất cơ bản sau: $(a+b) \% n = (a \% n + b \% n) \% n$ $(a*b) \% n = (a \% n * b \% n) \% n$ ## GCD ### Thuật toán "ngây thơ" Duyệt từ $min(a, b)$ đến $1$ để tìm GCD. ```cpp for (int i=min(a,b);i>=1;i--){ if (a%i==0&&b%i==0){ return i; } } ``` ### Thuật toán Euclid Dựa trên tính chất $GCD(a, b) = GCD(b, a \% b)$. ```cpp int gcd(a,b){ if (b==0){ return a; } else{ gcd(b,a%b); } } ```