0
برنامه پایتون
سلام
یک مسئله هست با این عنوان که : عددی را دریافت و برسی کند ایا ان عدد کامل هست یا نه (true or false)
عدد کامل: عددی که مجموع اعداد بخش پذیرش با خود ان عدد برابر باشند: مثال: 6 - 28 - 496 - 8128 (این اعداد به ترتیب هستند )
الگوریتمش این میشه که اعداد بخش پذیر را پیدا کرده و سپس مجموعش را محاسبه می کنیم اگر مجموع با عددمان برابر بود کامله
این قطعه کدی که من نوشتم فقط برای عدد 6 مقدار true بر می گردونه
مشکلش را هم فهمیدم اینه که وقتی برای عددی مثل 28 بخش پذیر ها را حساب میکنه وقتی به عدد 3 میرسه چون بخش پذیر نیست از حلقه خارج میشه و اعداد دیگر را برسی نمی کنه باید چیکار کنم
لطفا راهنمایی کنید
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")
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")