1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
unsigned calc_mp(unsigned mod) { unsigned a,b,c; c=-1; a=c/mod; b=0-a*mod; if (b > mod) { a += 1; b-=mod; } return b; } int main(int argc, char *argv[]) { unsigned x = 1234; unsigned y = calc_mp(x); if (y != 680) abort (); exit (0); }