Cómo resolver el problema del soldado de Han Xin... sin enumeración (lenguaje C)
int main()
{
int a, b, c, n
Printf("Ingrese tres números:");
scanf("%d%d%d",&one,&b&c);
n = (70 * a+21 * b+15 * c)% 105;
Printf("El resultado es %d+105*n (n es cualquier número natural)\n ",n);
}
//Multiplicar a por 70 hace que este número sea módulo 3, porque 70 módulo 3 obtiene 1, por lo que a*70 módulo 3 obtiene a; además, 21, 15 módulo 3 obtiene 0, por lo que el resultado de multiplicarlos por cualquier valor permanece sin cambios;
21*b corresponde a 5 y 7 en 15*c respectivamente;
El resultado de la suma módulo 105 se debe a que 105 es el mínimo común múltiplo de 3, 5 y 7, el resultado de +-105 no afectará el módulo, por lo que al tomar el módulo se obtendrá el valor mínimo.
Referencia:
Enciclopedia Baidu: Teorema del resto de China (Teorema de Sun Tzu)
/view/157384.htm? sub mmaid = 157384 & from enter = % D6 % D0 % B9 % FA % CA % A3 % D3 % E0 % B6 % A8 % C0 % ED