Ejemplo de práctica 3 de Python
Problema:Un número entero, cuando se le suma 100, es un cuadrado perfecto; y al sumarle 168 nuevamente, también es un cuadrado perfecto. ¿Cuál es ese número?
Análisis del programa:
Supongamos que el número es x.
1. Entonces: x + 100 = n2, x + 100 + 168 = m2
2. Calcular la ecuación: m2 - n2 = (m + n)(m - n) = 168
3. Establecer: m + n = i, m - n = j, i * j = 168, i y j al menos uno es par.
4. Se obtiene: m = (i + j) / 2, n = (i - j) / 2, i y j son ambos pares o ambos impares.
5. De 3 y 4 se deduce que i y j son números pares mayores o iguales que 2.
6. Dado que i * j = 168, j >= 2, entonces1 < i < 168 / 2 + 1。
7. A continuación, basta con recorrer todos los valores de i en un bucle para calcular.
Código fuente del programa:
Ejemplo (Python 3.0+)
def find_integer():
for i in range(2, 85): # El rango de i va de 2 a 84
if 168 % i == 0: # i es un factor de 168
j = 168 // i # Calcula el j correspondiente
if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0: # Asegúrate de que i y j sean ambos pares o ambos impares
m = (i + j) // 2
n = (i - j) // 2
x = n * n - 100
print(f"x: {x}, m: {m}, n: {n}")
# Llama a la función de resolución
find_integer()
Ejemplo (Python 2.0+)
# -*- coding: UTF-8 -*-
for i in range(1,85):
if 168 % i == 0:
j = 168 / i;
if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :
m = (i + j) / 2
n = (i - j) / 2
x = n * n - 100
print(x)
El resultado de salida del ejemplo anterior es:
-99 21 261 1581Otras extensiones
100 ejemplos de Python