در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

+9****+75

برنامه پایتون

سلام

یک مسئله هست با این عنوان که : عددی را دریافت و برسی کند ایا ان عدد کامل هست یا نه (true or false)

عدد کامل: عددی که مجموع اعداد بخش پذیرش با خود ان عدد برابر باشند: مثال: 6 - 28 - 496 - 8128 (این اعداد به ترتیب هستند )

الگوریتمش این میشه که اعداد بخش پذیر را پیدا کرده و سپس مجموعش را محاسبه می کنیم اگر مجموع با عددمان برابر بود کامله

 

این قطعه کدی که من نوشتم فقط برای عدد 6 مقدار true بر می گردونه

مشکلش را هم فهمیدم اینه که وقتی برای عددی مثل 28 بخش پذیر ها را حساب میکنه وقتی به عدد 3 میرسه چون بخش پذیر نیست از حلقه خارج میشه و اعداد دیگر را برسی نمی کنه باید چیکار کنم

لطفا راهنمایی کنید

لذت یادگیری با توسینسو
به عنوان شخصی که مدت هاست از سایت توسینسو استفاده می کنم باید بگم که واقعاً یکی از بهترین مرجع ها برای ارتقاء دانش شخصی هست. دوره های سایت، راهکارها و مطالب، همگی عالی هستند.
حسین احمدی

سلام، وقت بخیر

شما بخشی که برای else آخر گذاشتید مشکل رو ایجاد می کنه، کد راه حلی ساده برای اینکار هست:

num = int(input("Enter a number: "))
sum = 0
counter = num - 1;
while counter > 0:
 if num % counter == 0:
  sum = sum + counter
 counter = counter - 1
print(sum)
if sum == num:
 print("yes")
else:
 print("no")
لطفاً سوال خود را در انجمن مطرح کنید، به سوالات در پیام خصوصی پاسخ داده نخواهد شد
mohammadbahari67

به صورت پایین هم میشه کد زد

mohammadbahari67
number_input = int(input("please enter your number : \n"))
lists = [i for i in range(1, number_input+1) if number_input % i == 0]
total=sum(lists[:-1])
print("yes" if total == number_input else "no")
پاسخ شما
برای ارسال پاسخ خود وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....