// Contoh Bab 14: sifat modulo terhadap perkalian, dan bahaya luapan. // // Compile: g++ -std=c++17 -O2 -o sifatmod exercises/14/01-sifat-modulo.cpp // Jalankan: ./sifatmod #include using namespace std; const long long MOD = 1000000007; int main() { long long a = 123456789, b = 987654321; long long cara1 = a * b % MOD; // aman: long long long long cara2 = (a % MOD) * (b % MOD) % MOD; // sifat perkalian cout << "cara 1: " << cara1 << "\n"; cout << "cara 2: " << cara2 << "\n"; // Versi yang rusak: perkalian dihitung sebagai int lebih dulu. int ai = 123456789, bi = 987654321; int rusak = (int)((long long)(ai * bi) % MOD); // ai * bi meluap di sini cout << "versi rusak: " << rusak << "\n"; // Modulo untuk bilangan negatif. cout << "-7 % 3 di C++ : " << (-7 % 3) << "\n"; cout << "yang dimaksud mat: " << ((-7 % 3) + 3) % 3 << "\n"; return 0; }