Практический пример Python 3
Тема:Целое число после прибавления 100 становится полным квадратом, а после прибавления ещё 168 снова становится полным квадратом. Какое это число?
Анализ программы:
Пусть число равно x.
1. Тогда: x + 100 = n2, x + 100 + 168 = m2
2. Вычислим уравнение: m2 - n2 = (m + n)(m - n) = 168
3. Обозначим: m + n = i, m - n = j, i * j = 168, и хотя бы одно из чисел i и j чётное.
4. Отсюда можно получить: m = (i + j) / 2, n = (i - j) / 2, причём i и j либо оба чётные, либо оба нечётные.
5. Из 3 и 4 можно вывести, что i и j — оба чётные числа, большие или равные 2.
6. Поскольку i * j = 168, j >= 2, то1 < i < 168 / 2 + 1。
7. Затем переберите все значения i и вычислите.
Исходный код программы:
Пример (Python 3.0+)
# Определить функцию решения
def find_integer():
for i in range(2, 85): # Диапазон i — от 2 до 84
if 168 % i == 0: # i является делителем 168
j = 168 // i # Вычислить соответствующее j
if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0: # Убедиться, что i и j оба чётные или оба нечётные
m = (i + j) // 2
n = (i - j) // 2
x = n * n - 100
print(f"x: {x}, m: {m}, n: {n}")
# Вызвать функцию решения
find_integer()
def find_integer():
for i in range(2, 85): # Диапазон i — от 2 до 84
if 168 % i == 0: # i является делителем 168
j = 168 // i # Вычислить соответствующее j
if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0: # Убедиться, что i и j оба чётные или оба нечётные
m = (i + j) // 2
n = (i - j) // 2
x = n * n - 100
print(f"x: {x}, m: {m}, n: {n}")
# Вызвать функцию решения
find_integer()
Пример (Python 2.0+)
#!/usr/bin/python
# -*- 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)
# -*- 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)
Вывод приведенного выше примера:
-99 21 261 1581Другие расширения
100 примеров на Python