Resolver problemas de programación
PD: El producto de dos es igual al producto del máximo común divisor y el mínimo común múltiplo, por lo que el mínimo común múltiplo y el máximo común divisor se pueden calcular simplemente usando uno y el otro.
Debido a que el cartel tiene tres preguntas, todavía usamos tres funciones para resolverlas por separado:
//Mínimo común múltiplo
int?getMinMultiple(int?a,?int?b)< / p>
{
for(int?i=(agt;b)?a:b;?ilt;=a*b;?i )
{< / p>
if(ia==0?amp;amp;?ib==0)
{
//el retorno se coloca dentro del bucle for porque debe ser un mínimo Múltiplos comunes
return?i;
}
}
}
//Mayor divisor común
p>int?getMaxDivisor(int?a,?int?b)
{
int?maxDivisor?=?0;
for( int?i=(agt;b)?b:a;?igt;=1;?i--)
{
if(ai= =0?amp;amp ;?bi==0)
{
maxDivisor?=?i;
//Saltar del bucle for después encontrarlo
break;
}
}
//el retorno se coloca fuera del bucle for porque puede que no haya un máximo común divisor
return? maxDivisor;
}
//Número primo
int?judgePrime(int?a)
{
int?resultado?=?0;
for(int?i=2;?ilt;a;?i)
{
if(ai? ==?0)
{
resultado?=?i
descanso
;}
}
// ¿Igual que el divisor común? Si es un número primo, devuelve 0. De lo contrario, ¿no es un número primo?
return?result;
}
Función principal (la declaración DO?WHILE se usa principalmente para verificación repetida sin necesidad de salir del programa y ejecutarlo nuevamente. Por cuestiones de tiempo , ¿el autor puede agregar algunos valores especiales por sí mismo?^?^):
void?main()
{
int?way,? primerNúmero,?segundoNúmero;
do{
printf(" -------------------------- ------------------------ -\n");
printf("·Por favor elija su operación (por favor presione 0 para exit):\n");
printf("1 encuentra el máximo común divisor\ n");
printf("2 encuentra el mínimo común múltiplo\n");
printf("3 determina el número primo\n\n");
scanf("d",?amp;way);
switch( manera)
{
case?1:?printf("Ingrese la solución requerida Dos números:\n");
scanf("d, d",?amp; primerNúmero, y segundoNúmero);
if(getM
axDivisor(primerNúmero,?segundoNúmero)?=?0)
printf("El máximo común divisor de estos dos números es: d\n\n",?getMaxDivisor(primerNúmero,?segundoNúmero)); /p>
else
printf("Estos dos números no tienen máximo común divisor\n\n");
break
< / p>
case?2:?printf("Ingrese los dos números a resolver:\n");
scanf("d, d",?amp; primerNúmero, amp; segundoNúmero );
printf("El mínimo común múltiplo de estos dos números es: d\n\n",?getMinMultiple(primerNúmero,?segundoNúmero));
break; p> p>
case?3:?printf("Ingrese el número a resolver:");
scanf("d",?amp; firstNumber);
if (judgePrime(firstNumber)?!=?0)
printf("Este número no es primo\n\n");
else
printf(" Este número es un número primo\n\n");
break;
predeterminado: way?=?0; //Finalizar operación
descanso;
p>
}
}?mientras(camino?!=?0);
}
Capturas de pantalla específicas de resultados en ejecución (texto de captura de pantalla múltiple menos común ¿Incorrecto? El código ha sido modificado):