50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

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

سلام

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

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

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

 

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

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

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

پرسیده شده در 1398/05/23 توسط

2 پاسخ

0

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

شما بخشی که برای 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")
پاسخ در 1398/05/26 توسط
0
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")
پاسخ در 1398/05/26 توسط

پاسخ شما