Coprimos en C

Dos números enteros se dicen coprimos si y sólo si el M.C.D. entre ellos es 1. Por ejemplo: m.c.d(17,91) = 1 luego 17 y 91 son coprimos

– Prog083

/* Prog083.cpp */

/* Determinar los dos ‘int’ más grandes que sean ‘coprimos’ */

#include
#include
int MCD(int x,int y);
void main()
{
int max,num1,num2;
int i=1;
max=MAXINT;
while (MCD(max,MAXINT-i) != 1) i++;
num1=MAXINT;
num2=MAXINT-i;
printf(«n Los 2 números mayores coprimos tipo ‘int’ son %d y %d»,num1,num2);
printf(«nn C O M P R O B A C I O N:»); printf(«nMáximo INT= %d»,MAXINT);
printf(«nnMCD de %d y %d es %d»,num1,num2,MCD(num1,num2));
}
int MCD(int x,int y)
{
int aux,resto;
if (x<y) <br=»»> {
aux=x;
x=y;
y=aux;
}
if ((x % y)==0) resto=y;
while ((x % y) != 0)
{
resto=x-
y*(x/y); x=y;
y=resto;
}
return resto;
}

– Prog084

/* Prog084.cpp */

/* Matriz tal que Aij=1 si i,j son coprimos Aij=0 si i,j no son coprimos */

#include
int MCD(int x,int y);
void main()
{
int n; int i,j;
int matr[20][20];
printf(«nOrden de la matriz: «); scanf(«%d»,&n);
printf(«nn»);
for(i=0;i<n;i++) <br=»»> {
for(j=0;j<n;j++) <br=»»> {
if(MCD(i+1,j+1)==1)
matr[i][j]=1;
else
matr[i][j]=0;
printf(«%d «,matr[i][j]); };
printf(«n»);
}
}
int MCD(int x,int y)
{
int aux,resto; if (x<y) <br=»»> {
aux=x;
x=y;
y=aux;
}
if ((x % y)==0) resto=y;
while ((x % y) != 0)
{
resto=x-y*(x/y); x=y;
y=resto;
}
return resto;
}

Fuente: Programación en C/C++ (Manual FV) de Fermí Vilà