Giả sử chúng ta có một số n. Chúng ta phải kiểm tra xem số đó có phải là một số bình phương hoàn hảo hay không bằng cách thêm 1 với nó hay không.
Vì vậy, nếu đầu vào là n =288, thì đầu ra sẽ là True vì sau khi thêm 1, nó sẽ trở thành 289 giống như 17 ^ 2.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- res_num:=n + 1
- sqrt_val:=phần nguyên của căn bậc hai của (res_num)
- nếu sqrt_val * sqrt_val giống với res_num, thì
- trả về True
- trả về Sai
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu
from math import sqrt def solve(n): res_num = n + 1 sqrt_val = int(sqrt(res_num)) if sqrt_val * sqrt_val == res_num: return True return False n = 288 print(solve(n))
Đầu vào
288
Đầu ra
True