سلسلة حل المشكلات (Problem Sloving) اليوم الاول

التحدي رقم 1 لليوم رقم 1 من رمضان

اولا
كل عام و انتم بخير و اعاده الله عليكم بالمن و بالخير و البركه
لا تنشغل بالحل كثيرا كي لا تهمل عباداتك الاصليه
و لا تنسي تجديد نيتك فأن طلب العلم عباده
لا تنسوني و اخي المعتقل سياسيا من جميل دعائكم

وصف التحدي :

**مستوي التحدي : **
متوسط رياضيا
سهل برمجيا

قم بكتابة الدالة function تستقبل عددين، كلاهما عدد صحيح، ثم تقوم الدالة بإرجاع مصفوفة تحتوي على جميع الأرقام الأولية بين هذين الرقمين.

ملحوظه : كلمة مصفوفة يعني ليست [,]
ملحوظه : الاعداد الاوليه هي الاعداد التي لا تقبل القسمه الا علي نفسها او علي ال 1
(2,3,5,7…)

ملحوظه : تقدر تحل التحدي و تتحقق من صحته من خلال الموقع هنا اهو :
موقع سلسلة حل المشكلات (Problem Sloving)
بس خد بالك لو هتحل ع الموقع لازم اسم الداله يكون زي الاسم اللي موجود في وصف التحدي

أضغط لرؤية المخرجات المتوقعة عشان تتيست الكود بتاعك

الاختبار 1
المدخلات (Inputs)
a = 1
b = 10
المخرجات (Outputs)
[2,3,5,7]

الاختبار 2
المدخلات (Inputs)
a = 20
b = 50
المخرجات (Outputs)
[23,29,31,37,41,43,47]

الاختبار 3
المدخلات (Inputs)
a = 90
b = 100
المخرجات (Outputs)
[97]

الاختبار 4
المدخلات (Inputs)
a = 53
b = 67
المخرجات (Outputs)
[53,59,61,67]

حل التحدي
def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

def prime_numbers(a, b):
    if a > b:
        a, b = b, a  # التأكد ان ال a دايما هو الاصغر
    primes = []
    for num in range(a, b + 1):
        if is_prime(num):
            primes.append(num)
    return primes


حل اخر للتحدي
import math
def getPrimesBetween(a, b):
    primes = []
    for i in range(max(2, a), b + 1):  # نبدأ من 2 أو من a إذا كان أكبر من 2
        is_prime = True
        for n in range(2, int(math.sqrt(i)) + 1):  # التحقق حتى الجذر التربيعي للعدد
            if i % n == 0:
                is_prime = False
                break
        if is_prime:
            primes.append(i)
    return primes

3 إعجابات

وانت بخير وبسلامه، أنت وأخيك :heart:
يارب أخوك يطلع من السجن قريباً بسلامه وعافيه :sparkling_heart:


حل التحدي :

هذه هى الداله :

def prime_numbers_between (num1, num2) : return [x for x in range (num1, num2 + 1) if x == 2 or x > 2 and not any (x % i == 0 for i in range (int (x**0.5) + 1, 1, -1))] 

وهكذا تستطيع تجربتها :

print (prime_numbers_between (1, 100)) # الناتج : [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
إعجاب واحد (1)

في اي وحد سيشرح المستر مكتبة “math”

إعجاب واحد (1)

مش محتاجه شرح + تقدر تحله بدون متستخمها و هيبقي اسهل اصلا انا دماغي لفت لما كنت بحله زمان ثوان هضيف ف البوست الحل بدونها

3 إعجابات

امين يارب
عاش ما شاء الله

إعجابَين (2)

هو استخدم sqrt من math، هذه الداله بتجيب الجزر التربيعي للرقم. تقدر تجيب الجزر التربيعي بدون مكتبه math هكذا : لو عايز تجيب جزر 25 تقدر تكتب math.sqrt (25) او زى ما انا عملت 25 ** 0.5، يعني لو عايز الجزر لأي رقم اكتب (الرقم ** 0.5) في بايثون وبس كده.وللعلم (**) في بايثون يعنى الأس (^).

إعجاب واحد (1)

شـكـرا لك . . . . . :rose:

إعجاب واحد (1)

جزاك الله خيرا
وفك الله أسر أخيك عاجلا غير أجل

3 إعجابات