ปัญหา
สมมติว่าเรามีตัวเลข n เราต้องการตรวจสอบว่า n เป็นจำนวนกำลังสองสมบูรณ์ (perfect square) หรือไม่ จำนวนหนึ่งจะเป็นกำลังสองสมบูรณ์เมื่อรากที่สองของมันเป็นจำนวนเต็ม
ตัวอย่าง: หาก n = 36 ผลลัพธ์คือ True เพราะ 36 = 6×6
แนวทางแก้ปัญหา
- คำนวณส่วนจำนวนเต็มของรากที่สองของ
n(sq_root = int(sqrt(n))) - ตรวจสอบว่า
sq_root * sq_root == nหากจริงคืนค่าTrueมิฉะนั้นFalse
ตัวอย่างโค้ด
from math import sqrt
def solve(n):
sq_root = int(sqrt(n))
return (sq_root * sq_root) == n
n = 36
print(solve(n)) # Output: Trueอินพุต / เอาต์พุต
Input: 36 Output: True