কম্পিউটার টিউটোরিয়াল

পাইথনে sqrt ফাংশন ছাড়া পারফেক্ট স্কোয়ার চেক করার প্রোগ্রাম

একটি সংখ্যা n দেওয়া আছে। n কি পারফেক্ট স্কোয়ার (কোনো ইন্টিজারের বর্গ) কিনা চেক করুন। বিল্ট-ইন sqrt ফাংশন ব্যবহার না করে।

উদাহরণ

n = 121 → আউটপুট: True (১১×১১ = ১২১)

এলগরিদম (বাইনারি সার্চ)

  1. যদি n == 0 or n == 1: True
  2. start := 2, stop := n//2
  3. while start <= stop:
    • mid := (start + stop) // 2
    • mid_sq := mid * mid
    • যদি mid_sq == n: True
    • যদি mid_sq > n: stop := mid - 1
    • অন্যথায়: start := mid + 1
  4. False রিটার্ন করুন।

পাইথন কোড

def solve(n):
    if n == 0 or n == 1:
        return True
    start = 2
    stop = n // 2
    while start <= stop:
        mid = (start + stop) // 2
        mid_sq = mid * mid
        if mid_sq == n:
            return True
        if mid_sq > n:
            stop = mid - 1
        else:
            start = mid + 1
    return False

n = 121
print(solve(n))  # আউটপুট: True

ইনপুট / আউটপুট

121
True
  1. প্রাইম নম্বর চেক করার পাইথন প্রোগ্রাম

  2. পাইথনে আর্মস্ট্রอง নম্বর চেক করা

  3. পাইথন প্রোগ্রাম: কোনো সংখ্যা প্রাইম কিনা তা যাচাই করা

  4. পাইথনে প্যালিনড্রোম স্ট্রিং চেক করা