من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

حل تمرین عدد خوب کوئرا با پایتون

حل تمرین عدد خوب کوئرا با پایتون
حل تمرین عدد خوب کوئرا با پایتون

حل تمرین عدد خوب کوئرا با پایتون

در این نوشته به روش حل یکی از سوالات برنامه نویسی وب‌سایت کوئرا می‌پردازیم.

 

حل تمرین عدد خوب کوئرا با پایتون

یکی از اساتید دانشکده ریاضی که به پروژه Genealogy Mathematics خیلی علاقه‌مند است، بعد از مطالعه پیشینه اساتید خود و استادان آن‌ها و… که در دیتابیس بزرگ این پروژه قرار دارند، در نهایت به ریاضی‌دان بزرگ کارل فریدریش گاوس به عنوان جد ریاضیاتی خود رسید که علاوه بر کارهای بسیار بزرگ در ریاضیات، داستان‌هایی در مورد محاسبه جمع اعداد 1 تا 100 با استفاده از فرمول را نیز به دوران مدرسه او نسبت می‌دهند. به این ترتیب این استاد دانشکده ریاضی، به اعدادی که از جمع اعداد 1 تا n ساخته شده‌اند (مانند 1، 3، 6، 10، 15 و…)، علاقه‌مند شد. او نام این اعداد را اعداد خوب گذاشته و می‌خواهد که مقسوم‌ علیه‌های مختلف آن‌ها را بیابید؛ اما از آنجایی که به‌شدت مشغول است، وقت برای نوشتن برنامه مورد نظر را ندارد و از شما خواسته است تا برنامه‌ای بنویسید که یک عدد به عنوان ورودی از کاربر بگیرد و اولین عدد خوبی که حداقل  مقسوم‌ علیه طبیعی دارد را به عنوان خروجی بدهد.

 

ورودی

ورودی شامل یک عدد طبیعی k تعداد مقسوم‌ علیه‌های عدد خوب مدنظر است.

ورودی در تمرین عدد خوب

 

خروجی

خروجی برنامه شما، یک عدد طبیعی است. این عدد طبیعی باید اولین عدد طبیعی خوبی شود که حداقلk  مقسوم‌علیه طبیعی دارد.

 

مثال

ورودی نمونه 1

4

 

خروجی نمونه 1

6

اولین عدد خوبی که چهار مقسوم‌علیه طبیعی دارد، عدد 6 است.

 

کد پایتون سوال تمرین عدد خوب

k = int(input())

good_number = 0
good_number_counter = 0
is_finished = False
while not is_finished:
    good_number_counter += 1
    good_number += good_number_counter
    factor_counter = 0
    counter = 1
    counter_increasment = 1 if good_number % 2 == 0 else 2
    sqrt = int(good_number**0.5)
    if sqrt**2 == good_number:
        if k % 2 == 0:
            k2 = k//2+1
        else:
            k2 = (k-1)//2+1
    else:
        if k % 2 == 0:
            k2 = k//2
        else:
            k2 = k//2+1
    while counter <= sqrt:
        if good_number % counter == 0:
            factor_counter += 1
            if factor_counter >= k2:
                print(good_number)
                is_finished = True
                break
        counter += counter_increasment

 

منبع سوال: کوئرا

اگر نیاز به حل تمرین‌های دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]