Ocena użytkownikóww: ***** / 5
Nadesłany przez Tomasz Lubiński, 13 listopada 2006 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.
mod.c:
//
// Obliczanie modulo z dowolnie duzej liczby
//
// www.algorytm.org
// (c)2006 Tomasz Lubinski
//
#include "stdio.h"
#include "stdlib.h"
// calculates n mod m
int modulo(char *n, int m)
{
int i;
int result = 0;
char x[20];
char s[2];
s[1] = 0;
x[0] = 0;
for (i=0; i<strlen(n); i++)
{
s[0] = n[i];
strcat(x, s);
result = atoi(x);
result %= m;
if (result == x)
{
x = "";
}
else
{
itoa(result, x, 10);
}
}
return result;
}
int main(void)
{
//510007547061111400 mod 97 = 36
printf("510007547061111400 mod 97 = %d\n", modulo("510007547061111400", 97));
//1295302 mod 7 = 1
printf("1295302 mod 7 = %d\n", modulo("1295302", 7));
return 0;
}