// Demostracion de las operaciones basicas de aritmetica modular#include<iostream>usingnamespace std;intmain() { // Variable para guardar el modulo;int m =7; // Variables de ejemploint a =8;int b =5;int c; // Suma c = a + b; // 13 // Suma modular // Es lo mismo sumar todos los elementos y al final obtener el modulo m // que obtener el modulo de cada elemento y sumarlo y obtener el modulo al final.int d; d = (a % m + b % m) % m; // 5 + 1 = 6if (c % m == d) { cout <<"La aritmetica modular funciona en sumas!\n"; } // 5 + 8 = 13 // 13 % 7 = 6 // 10 + 15 + 22 = 47 // 47 % 7 = 5 // 10 % 7 = 3 // 15 % 7 = 1 // 22 % 7 = 1 // 3 + 1 + 1 = 5 // 5 % 7 = 5 // Resta c = a - b; // Resta modular // Es lo mismo restar todos los elementos y al final obtener el modulo m // que obtener el modulo de cada elemento y restarlos y obtener el modulo al final. // Nota: Si en algun momento el resultado parcial se hace negativo, es necesario sumar // el modulo (m). Ejemplo // | // ↓ // Regla general: (a - b) % m = ((a % m - b % m) + m) % m; d = ((a % m - b % m) + m) % m;if (c % m == d) { cout <<"La aritmetica modular funciona en restas!\n"; } // 5 - 8 = (-3+7) % 7 = 4 // 5 % 7 = 5 // -8 % 7 = 1 // 5 - 1 = 4 // 4 % 7 = 4 // Multiplicacion c = a * b; // Multiplicacion modular d = (a % m * b % m) % m;if (c % m == d) { cout <<"La aritmetica modular funciona en multiplicaciones!\n"; } // Division // NO SE PUEDE! Nota: En realidad si se puede, pero haciendo cosas muy raras. :(return0;}