راه
۸ کیو· خیلی سادهمبتدیPYTHON۴ ثانیه · ۲۵۶ مگابایت

کوچکترین مضرب

در این تمرین، به شما دو عدد صحیح مثبت، p و d داده می‌شود. هدف شما پیدا کردن کوچک‌ترین مضرب عدد d است که وقتی بر عدد p تقسیم می‌شود، باقی‌مانده‌ای بین 0 تا p/2 (شامل هر دو مقدار) داشته باشد.

عدد p همواره زوج خواهد بود و باقی‌مانده‌ی موردنظر می‌تواند دقیقاً برابر با p/2 باشد.


💡 راهنمایی ۱: دریافت ورودی

می‌توانید به سادگی دو عدد را که در یک خط و با فاصله از هم جدا شده‌اند، به صورت زیر دریافت کنید:

python
p, d = input().split()
p = int(p)
d = int(d)

تابع .split() این خط متن را بر اساس فاصله به یک لیست از رشته‌ها تبدیل می‌کند و دو عضو اول لیست را به‌ترتیب به متغیرهای p و d نسبت می‌دهد. سپس با استفاده از تابع int() رشته‌های p و d به اعداد صحیح تبدیل می‌شوند.


💡 راهنمایی ۲

برای حل این تمرین، می‌توانید از یک حلقه‌ی while استفاده کنید. در این حلقه، مضارب متوالی عدد d را بررسی کنید. برای هر مضرب، باقی‌مانده‌ی آن را بر p محاسبه کنید. به محض این‌که مضربی پیدا کردید که باقی‌مانده‌اش در محدوده‌ی 0 تا p/2 قرار داشت، آن مضرب را به‌عنوان پاسخ چاپ کرده و حلقه را متوقف کنید. به یاد داشته باشید که برای محاسبه‌ی باقی‌مانده در پایتون می‌توانید از عملگر % استفاده کنید.


📥 ورودی

ورودی برنامه یک خط است که شامل اعداد p و d است. d نشان‌دهنده‌ی عددی است که به شما داده شده تا کوچک‌ترین مضرب از آن را با رعایت شرط داده‌شده، پیدا کنید. دقت کنید که عدد p زوج است.

2 ≤ p ≤ 100 1 ≤ d ≤ 1000

📤 خروجی

برنامه باید در خروجی، کوچک‌ترین مضرب d را چاپ کند که شرط باقی‌مانده (بین 0 تا p/2) را برآورده سازد.


🎯 نمونه

ورودی ۱

text
8 7

خروجی ۱

text
28

مضرب اول d، یعنی 7 × 1 = 7. باقی‌مانده‌ی 7 بر 8 برابر 7 است که بزرگ‌تر از 8/2 = 4 است. مضرب دوم d، یعنی 7 × 2 = 14. باقی‌مانده‌ی 14 بر 8 برابر 6 است که بزرگ‌تر از 4 است. مضرب سوم d، یعنی 7 × 3 = 21. باقی‌مانده‌ی 21 بر 8 برابر 5 است که بزرگ‌تر از 4 است. مضرب چهارم d، یعنی 7 × 4 = 28. باقی‌مانده‌ی 28 بر 8 برابر 4 است که کوچک‌تر یا مساوی 8/2 = 4 است. بنابراین، 28 کوچک‌ترین مضرب 7 است که شرط را دارد.

ورودی ۲

text
6 541

خروجی ۲

text
541

مضرب اول d، یعنی 541 × 1 = 541. باقی‌مانده‌ی 541 بر 6 برابر 1 است که کوچک‌تر یا مساوی 6/2 = 3 است. بنابراین، 541 خود کوچک‌ترین مضرب است که شرط را دارد.

ورودی ۳

text
4 31

خروجی ۳

text
62

مضرب اول d، یعنی 31 × 1 = 31. باقی‌مانده‌ی 31 بر 4 برابر 3 است که بزرگ‌تر از 4/2 = 2 است. مضرب دوم d، یعنی 31 × 2 = 62. باقی‌مانده‌ی 62 بر 4 برابر 2 است که کوچک‌تر یا مساوی 2 است. بنابراین، 62 کوچک‌ترین مضرب 31 است که شرط را دارد.


💡 راهنمایی نهایی

ساختار کلی برنامه به این شکل است:

python
p, d = input().split()
p = int(p)
d = int(d)

limit = p // 2
multiplier = 1

while True:
    multiple = d * multiplier
    remainder = multiple % p
    if remainder <= limit:
        print(multiple)
        break
    multiplier += 1

دقت کنید که باقی‌مانده باید بین 0 تا p/2 باشد، یعنی remainder ≤ limit.

✅ این تمرین را در ویرایشگر خود کپی کنید و با ورودی‌های مختلف تست کنید.

نمونه‌ها

ورودی نمونه ۱
8 7
خروجی نمونه ۱
28
ورودی نمونه ۲
6 541
خروجی نمونه ۲
541
ورودی نمونه ۳
4 31
خروجی نمونه ۳
62

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود