Python-Übungsbeispiel 3

Python 100例Python 100 Beispiele

Thema:Eine ganze Zahl ist nach Addition von 100 ein perfektes Quadrat, und nachdem weitere 168 addiert wurden, ist sie wieder ein perfektes Quadrat. Wie lautet die Zahl?

Programmanalyse:

Angenommen, die Zahl ist x.

1. Dann: x + 100 = n2, x + 100 + 168 = m2

2. Berechne die Gleichung: m2 - n2 = (m + n)(m - n) = 168

3. Setze: m + n = i, m - n = j, i * j = 168, und mindestens eine von i und j ist gerade.

4. Man erhält: m = (i + j) / 2, n = (i - j) / 2, und i und j sind entweder beide gerade oder beide ungerade.

5. Aus 3 und 4 lässt sich ableiten, dass i und j beide gerade Zahlen größer oder gleich 2 sind.

6. Da i * j = 168, j >= 2, dann1 < i < 168 / 2 + 1。

7. Als Nächstes durchlaufe alle Werte von i und berechne.

Programmquellcode:

Beispiel (Python 3.0+)

# Definiere die Lösungsfunktion
def find_integer():
    for i in range(2, 85):  # Der Bereich von i reicht von 2 bis 84
        if 168 % i == 0:  # i ist ein Teiler von 168
            j = 168 // i  # Berechne das entsprechende j
            if i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0:  # Stelle sicher, dass i und j beide gerade oder beide ungerade sind.
                m = (i + j) // 2
                n = (i - j) // 2
                x = n * n - 100
                print(f"x: {x}, m: {m}, n: {n}")

# Rufe die Lösungsfunktion auf
find_integer()

Beispiel (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)

Die Ausgabe des obigen Beispiels ist:

-99
21
261
1581

Python 100例Python 100 Beispiele

Andere Erweiterungen