Red de conocimiento informático - Conocimiento sistemático - Resolver problemas de programación

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>

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):