Você está na página 1de 5

Ecuaciones Diofnticas

Los problemas a resolver sern definidos por el usuario , el programa decidir


si alguna ecuacin de la forma ax+by = c , donde a, b, c Z, tiene soluciones
en los enteros o no.

El usuario ingresara el valor de ax y by asi como el termino independiente, se


evaluara si la ecuacin tiene o no solucin en los enteros a partir de una
solucin particular.

Sean a, b y c tres nmeros enteros. La ecuacin lineal ax + by = c tiene


solucin entera si, y slo si el mximo comn divisor de a y b divide a c.

Supongamos que los enteros x0 e y0 son solucin de la ecuacin ax + by = c,


es decir, ax0 + by0 = c. Pues bien, si d = m.c.d.(a, b), entonces d = m.c.d.(a,
b) d|a y d|b d|ax0 + by0 d|c .

Los problemas a resolver seran enteros, y se basara a partir de

supongamos que d = m.c.d.(a, b) es divisor de c. Entonces,

m.c.d.(a, b) = d m.c.d. (a/d, b/d) = 1

p, q Z : (a/d) p + (b/d)q = 1

a (cp/d) + b (cq/d) = c

siendo
c/d entero ya que, por hiptesis, d es divisor de c. Ahora bastara tomar

x0 = (cp/d) e y0= (cq/d)

tendremos que

ax0 + by0 = c

los enteros ax0 e by0 son solucin de la ecuacin.

Pseudocodigo.

Algoritmo ecuaciones Diofnticas.

Variables
entero a,b,c //Enteros de nuestros coeficientes ax,by,c//
entero r = 1,inst,x,y,z //Enteros auxiliares//

inicio
escribir (''Introduzca el valor de A'')
leer (a)
escribir (''Introduzca el valor de B'')
leer (b)
escribir (''Introduzca el valor de C'')
leer (c)
escribir (''ax + by + c'')
ya
zb

Si, a es menor que b Entonces


xa
ab
bx

Mientras (r es distinto de cero)


inst a/b
r a%b

Si, r es menor que cero entonces


Si, inst es menor que cero entonces
inst inst 1
Si, inst es mayor o igual que cero entonces
inst inst +1
r a (b * inst)

ab
br

Si, a es menor que cero


a a a
escribir (''MCD de(y,z)= a")
Si, c=a*(c/a)
escribir ("La solucin es posible en los enteros, puesto que (y,z)= a y a / c ")
de otro caso
escribir ("La solucin no es posible en los enteros, puesto que (y,z)= a y a -/ c
")

Cdigo en lenguaje de
programacin C.

#include<stdio.h>
#include<stdlib.h>
int main(){
int a,b,c;

int r=1;
int inst;
int x,y,z;
printf("Introducir valor de A:\n");
scanf("%d",&a);
printf("Introducir valor de B\n");
scanf("%d",&b);
printf ("Introducir termino independiente:\n");
scanf("%d",&c);
printf("%dx + %dy = %d\n",a,b,c);
y=a;
z=b;
if(a<b){
x=a;
a=b;
b=x;
}
while(r!=0){
inst=a/b;
r=a%b;
if(r<0) {
if(inst<0)
inst-=1;
if(inst>=0)
inst+=1;
r=a-(b*inst);
}
a=b;
b=r;
}

if(a<0)
a=-a;
printf("MCD de(%d,%d)= %d\n",y,z,a);
if (c==a*(c/a))
printf("La solucion es posible en los enteros, puesto que (%d,%d)= %d y %d /
%d \n",y,z,a,a,c);
else
printf("La solucion no es posible en los enteros, puesto que (%d,%d)= %d y %d
-/ %d \n",y,z,a,a,c);
system ("pause");
return 0;
}
Ecuaciones Diofnticas
En este programa el objetivo es verificar si dada la ecuacin tiene soluciones
en los enteros o no.
Para verificar si existen soluciones posibles en los enteros, se tiene que tomar
en cuenta el mximo comn divisor de los coeficientes de las variables. Existen
dos casos, el primero es que dado el mximo comn
divisor, este pueda dividir al coeficiente de c, si este es el caso el programa
muestra La solucin es posible en los enteros; de lo contrario La solucin no
es posible en los enteros
En la siguiente ecuacin el programa nos indicas que la solucin es posible

En el caso de esta ecuacin no tiene una solucin posible en los enteros

Você também pode gostar