عدد کامل عددی است که مجموع مقسومعلیههای صحیح و کوچکتر از خودش برابر با خود عدد باشد.
مثال:
۶ = ۱ + ۲ + ۳ → عدد کامل
۲۸ = ۱ + ۲ + ۴ + ۷ + ۱۴ → عدد کامل
۱۸ = ۱ + ۲ + ۳ + ۶ + ۹ → مجموع = ۲۱ ≠ ۱۸ → عدد کامل نیست
def is_perfect(n: int) -> bool:
if n <= 1:
return False
divisors = [i for i in range(1, n) if n % i == 0]
return sum(divisors) == n
# دریافت عدد از کاربر
num = int(input("یک عدد وارد کنید: "))
# بررسی و نمایش نتیجه
if is_perfect(num):
print(f"{num} یک عدد کامل است.")
else:
print(f"{num} عدد کامل نیست.")
ورودی: 6
6 یک عدد کامل است.
ورودی: 18
18 عدد کامل نیست.
- ابتدا تمام مقسومعلیههای صحیح و کوچکتر از عدد بررسی میشوند
- اگر مجموع آنها برابر با خود عدد باشد، عدد کامل است
- تابع is_perfect این بررسی را انجام میدهد و نتیجه را برمیگرداند