Tìm số là số chính phương vừa là lập phương của số nguyên với Python

7
Lập trình Python

Bài toán. Tìm số nguyên dương n = x2 = y3 (với x, y nguyên, n có 4 chữ số),

Với bài toán này, ta cần giải bằng thuật toán.

Vì  1000 <= y3 <= 9999.

Từ đó suy ra: 10 <= y <= 21.

Chính vì vậy ta sử dụng vòng lặp for duyệt từ 10 đến 21, tìm ra một số chính phương bằng y3 thỏa mãn là một số chính phương.

Code tham khảo như sau:

import math
def chinhPhuong(x):
    if math.sqrt(x) == int(math.sqrt(x)):
        return True
    else: return False
for i in range(10,21):
    if chinhPhuong(i*i*i):
        print(i*i*i)
        print(str(i)+" "+str(int(math.sqrt(i*i*i))))