#include <stdio.h>
void put(int c) {
fputc(c, stdout);
}
void Mod(unsigned int M, unsigned int N, unsigned int *result)
{
*result = M - ( (M / N) * N) ;
}
void writeu(unsigned int num)
{
Mod(num, 10, &num);
put(num + '0');
}
void printstring(char *s)
{
int i;
i = 0;
while (s[i] != 0) {
put(s[i]);
i = i + 1;
}
}
void newline(void)
{
put(10);
}
void Gcd(unsigned int M, unsigned int N, unsigned int *result)
{
unsigned int Rem;
while (N > 0) {
Mod(M, N, &Rem);
M = N;
N = Rem;
}
*result = M;
}
int main(int argc, char **argv)
{
unsigned int val;
Gcd(45, 35, &val);
printstring("Gcd( 45, 35 ) = ");
writeu(val);
newline();
Gcd(1989, 1590, &val);
printstring("Gcd( 1989, 1590 ) = ");
writeu(val);
newline();
exit(0); return(0);
}