سوال برای برنامه نویس های پایتون بخش لیست ها وحلقه ها - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

سوال برای برنامه نویس های پایتون بخش لیست ها وحلقه ها

0 امتیاز
با برنامه نویسی پایتون تابعی طراحی کنید که عددی را دریافت کند و کوچکترین عددی که بر تمامی اعداد کوچکتر از عدد ورودی بخش پذیر است را برگرداند.

لطفا سریعتر جواب بدید عجله دارم.
سوال شده اردیبهشت 11, 1399  بوسیله ی shakiba1384 (امتیاز 9)   1 1 1

1 پاسخ

0 امتیاز

در اینجا یک راه برای پیاده سازی این تابع وجود دارد:

def smallest_multiple(n):
    def gcd(a, b):
        """Calculate the Greatest Common Divisor of a and b."""
        while b:
            a, b = b, a % b
        return a

    def lcm(a, b):
        """Calculate the Least Common Multiple of a and b."""
        return a * b // gcd(a, b)

    result = 1
    for i in range(2, n):
        result = lcm(result, i)
    return result
تابع smallest_multiple یک ورودی n می گیرد و کوچکترین عددی را که بر همه اعداد کوچکتر از n بخش پذیر است را برمی گرداند.
 
این تابع از مفهوم بزرگترین مقسوم علیه مشترک (GCD) و حداقل مضرب مشترک (LCM) استفاده می کند. GCD دو عدد بزرگترین عددی است که هر دو عدد را تقسیم می کند و LCM کوچکترین عددی است که بر هر دو عدد تقسیم می شود.
 
تابع gcd GCD دو عدد را با استفاده از الگوریتم اقلیدسی محاسبه می کند. تابع lcm LCM دو عدد را با استفاده از GCD و فرمول a * b // gcd(a, b) محاسبه می کند.
 
تابع smallest_multiple در تمام اعداد کوچکتر از n تکرار می شود و LCM هر عدد را با نتیجه تکرار قبلی محاسبه می کند. نتیجه تکرار نهایی کوچکترین عددی است که بر همه اعداد کوچکتر از n بخش پذیر است.
پاسخ داده شده بهمن 13, 1401 بوسیله ی Ali_GH (امتیاز 368)   4 14 19
...