Inverso de un número en módulo m

Fernando Ruiz Laguna

/*Este programa utiliza un bucle para hallar el inverso de un número dado en un módulo tambien dado*/

#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
int mod, a, r, i, p, inv;
cout << “Introduce el modulo en el cual quieres trabajar:” << endl;
cin >> mod;
cout << “Ahora introduce el numero cuyo inverso en modulo ” << mod << ” quieres conocer” << endl;
cin >> r;
a = r%mod;
if(a<0) a = mod + a;
if(a!=r) cout << “Has introducido ” << r << ” pero el programa trabajara con ” << a << “, que es el distintivo de la clase de equivalencia.” << endl;
inv = 0;
if(a==1) inv = 1;
for(p=1;p<mod;p++){
for(i=1;i<mod;i++){
if(a*p==mod*i+1){
inv = p;
i = mod;
p = mod;
}
}
}
if(inv!=0) cout << “El inverso de ” << a << ” en modulo ” << m << “es ” << inv << endl;
else cout << “El numero ” << a << ” no tiene inverso en modulo ” << mod << endl;
system(“pause”);
}

Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s