[C con Clase] Obtener el resto de la división de dos números grandes
José Luis Torre
joseluistorrehernandez en gmail.com
Jue Jul 12 00:09:17 CEST 2012
Hola a todos:
Estoy intentando obtener el resto de la división de dos números
enteros grandes, las funciones que he definido las pongo a
continuación.
También he realizado algunas pruebas y no entiendo porqué en algunos
casos el resto me sale negativo, cuando debería ser positivo.
He probado a utilizar las funciones round() y floor() y los resultados
son los mismo.
Cualquier pista será bien recibida.
double resto(double num, double den);
double noesprimo(double p);
double cociente(double num, double den);
double noesprimo(double p)
{
double a =11.0;
return (resto(pow(a, p-1), p) !=1) ;
}
double resto(double num, double den)
{
return num - cociente(num, den)*den;
}
double cociente(double num, double den)
{
// return round(num/den);
return floor(num/den);
}
int main()
{
int p;
double a = 11.0;
double num;
for (p=3; p<100; p+=2)
{
// printf("%d %lf\n", p, noesprimo((double)p));
num = pow(a, p-1);
printf("%2d\n%.0f\n%.0f\n%.0f\n%.0f\n%.0f\n=======================================\n",
p,
num,
cociente(num, p),
p*cociente(num, p),
num - p*cociente(num, p),
resto(num, p)
);
}
system("pause");
return 0;
}
--
José Luis Torre
ww.ehu.es
Más información sobre la lista de distribución Cconclase