Практический пример Python 3

Python 100例100 примеров на Python

Тема:Целое число после прибавления 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()

Пример (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)

Вывод приведенного выше примера:

-99
21
261
1581

Python 100例100 примеров на Python

Другие расширения