#include #include #include #include "Mod.cpp" int main() { //Exrcise 11.5.1 Section 11.5.6 Mod<13> n11(11); Mod<13> n9(9); Mod<13> n5(5); Mod<13> n8(8); assert((n11+n9).value() == 7); assert((n9-n11).value() == 11); assert( (n5*n8).value() == 1 ); // no division yet for assert( (n5/n8).value() = 5 ); Mod<13> s(5); // 5^8 is square(square(square(5))) s=s*s; //5^2 s=s*s; //5^4 s=s*s; //5^8 assert( s.value() == 1 ); //or assert( n5.square().square().square().value() == 1 ); //or assert( n5.pow(n8).value() == 1); std::cout << "----\n" << (n8.pow(n5)).value() <x(7); //test number const int N=10; // highest power Mod<561>p[N+1]; // table of powers of x mod 561: p[i] = x^(i+1) p[0]=Mod<561>(x); Mod<561>y(x); for(int i=1;i