El mayor mínimo común múltiplo (preguntas de análisis, debe tener sentido común de las matemáticas) HRBUST-1632

Enlace de pregunta

Aprendimos cuál es el mínimo común múltiplo desde la escuela primaria, y la pregunta de hoy también trata sobre el mínimo común múltiplo mcm (arrendamiento común múltiplo). Nuestro problema es que, dado un número entero n, debe elegir tres números que no sean mayores que n. No hay restricciones sobre cómo elegir. Cada número puede ser más de uno, de modo que el mínimo común múltiplo de estos tres números es en todos los métodos. Es el más grande.

Por ejemplo: la n dada es 5. Entonces, los números opcionales no mayores de 5 son 1, 2, 3, 4, 5. El mínimo común múltiplo de los tres números 3, 4 y 5 seleccionados aquí es 60, que es el mayor entre todos los métodos. Entonces obtenemos el resultado 60.

Entrada

La entrada contiene múltiples conjuntos de datos de prueba, cada uno de los cuales es un número entero n (1 <= n <= 10 ^ 6) como se mencionó anteriormente.

Salida

Para cada conjunto de datos de prueba, genere un número entero, que representa el valor máximo del mínimo común múltiplo de tres números que no exceda n entre todas las opciones posibles. Se permite seleccionar el mismo número varias veces.

Entrada de muestra
5

7 
Salida de muestra
60

210 
Antes de escribir esta pregunta, debe conocer algunos conocimientos matemáticos:

1. Dos números adyacentes mayores que 1 son primos entre sí
2. Dos números impares mayores que 1 son primos entre sí
3. Si tres números son primos relativamente, su mínimo común múltiplo es su producto

Para el número de entrada n, hay tres situaciones:
1. n es un número impar. En este momento, los tres números adyacentes no mayores que n son pares-impares. De acuerdo con los tres conocimientos matemáticos anteriores, podemos conocer estos tres números n, n-1, N-2 es primo relativo.
2. n es un número par. En este momento, los tres números adyacentes no mayores que n son pares-impares-pares. Estos dos números pares no deben ser primos entre sí. Para maximizar el producto, movemos el número par más pequeño hacia atrás en 1, es decir, en este momento Los tres números son n, n-1, n-3, en este momento n y n-1 son relativamente primos, n-1 y n-3 son relativamente primos, pero n y n-3 no son necesariamente primos relativos, porque cuando n es Cuando es un múltiplo de 3, ny n-3 deben tener un factor común de 3. En este momento, discutiremos la clasificación, por lo que cuando n no es un múltiplo de 3, n, n-1 y n-3 deben ser primos relativos.
3. Cuando n es un número par yn es un múltiplo de 3, intentamos mover el número más pequeño hacia atrás en 2 (o un número par si mueves 1), y obtener tres números como n, n-1, n- 5, si estos tres números están bien, entonces la puntuación n × (n-1) × (n-5) debe ser menor que (n-1) × (n-2) × (n-3), por qué y ( n-1) × (n-2) × (n-3) compare, porque según el primer artículo (n-1), (n-2), (n-3) debe ser primo relativo. Por lo tanto, en este caso, use (n-1), (n-2), (n-3) directamente

Finalmente, preste atención a algunos pequeños detalles: cuando la entrada n es menor que 3, el resultado es n.

el código se muestra a continuación:

#include<iostream>
using namespace std;
int main()
{
    
    
	long long n=0;
	while(cin>>n)
	{
    
    
		if(n<3)
		{
    
    
			cout<<n<<endl;
			continue;
		}
		if(n%2==1)
		{
    
    
			cout<<n*(n-1)*(n-2)<<endl;
		}
		else
		{
    
    
			if(n%3!=0)
			cout<<n*(n-1)*(n-3)<<endl;
			else
			cout<<(n-1)*(n-2)*(n-3)<<endl;
		}
	} 
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/Huo6666/article/details/108816224
Recomendado
Clasificación