این برنامه مقدار عبارت رادیکالی تودرتو را برای عدد n محاسبه میکند:
$$\sqrt{n + \sqrt{n + \sqrt{n + \cdots}}}$$
محاسبه تا زمانی ادامه مییابد که اختلاف بین دو مرحله کمتر از 1e-10 شود (یعنی دقت ۱۰ رقم اعشار).
import math
def nested_sqrt(n: float, precision: int = 10) -> float:
epsilon = 10 ** (-precision)
current = math.sqrt(n)
while True:
next_val = math.sqrt(n + current)
if abs(next_val - current) < epsilon:
break
current = next_val
return round(current, precision)
# دریافت ورودی از کاربر
n = float(input("عدد n را وارد کنید: "))
result = nested_sqrt(n)
print(f"مقدار عبارت رادیکالی برای n = {n} برابر است با: {result}")
ورودی: 5
مقدار عبارت رادیکالی برای n = 5 برابر است با: 3.3301910412
- ابتدا مقدار اولیه برابر با √n در نظر گرفته میشود
- در هر مرحله مقدار جدید برابر با √(n + مقدار قبلی) محاسبه میشود
- اگر اختلاف بین دو مقدار کمتر از 10⁻¹⁰ باشد، حلقه متوقف میشود
- مقدار نهایی با دقت ۱۰ رقم اعشار نمایش داده میشود