• 0
kenham

تمرين بسيط2(تحليل عدد لجداء عوامل أولية)

سؤال

يتجلى تحليل عدد لجداء عوامل أولية في كتابة العدد على شكل جداء عوامل أولية

 

مثلا العدد 12

12=2*2*4

المطلوب صنع برنامج لتحليل عدد مدخل إلى جداء عوامل أولية

 

كمثال حي أرفقت برنامج من صنعي لفهم الموضوع أكثر

 

البرنامج مبرمج بالباسكال

elementp.rar

2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

10 إجابة على هذا السؤال .

  • 0
تفضل حل بسيط 

تركته عمدا بسيط حتى لا تخلط الامور على الاعضاء الاخرين

 



def primefactors(x):
li=[]
loop=2
while loop<=x:
if x%loop==0:
x = x /loop
li.append(loop)
else:
loop+=1
return li

print primefactors(124)

في انتظار مشاركة الاعضاء الاخرين ثم اكتبه في عدد اقل من الاسطر


1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جيد لكن أنت بالتأكيد لم تحمل البرنامج الذي رفعته

 

أنا قلت الخرج يكون على هذا الشكل:

124=2*2*31

أما برنامجك فيعطي الخرج على الشكل

[2, 2, 31]

أنت لم تلتزم بنص التمرين لذا أعتبر حلك خاطئ لأنه لا يعطي النتائج المطلوبة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

def primefactors(x):

xx = x

li=[]

loop=2

while loop<=x:

if x%loop==0:

x = x /loop

li.append(loop)

else:

loop+=1

return str(xx) + '=' +'*'.join([ str(i) for i in li])

print primefactors(120)

لم ارى التطبيق الذي قمت بارفاقه لاني استخدم لينكس 

تم اصلاح الخرج الان
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأن تبقى مشكلة شاكنا و كلانا أخطأ عندها

 

و هي العدد واحد

 

فما هو تحليل جداء عوامل الأولية للواحد

 

برنامج يطبع 2 و هو خاطئ طبعا

 

أما برنامجك فلا يطبع شيئا

 

فما هو الحل يا ترى هل هو الواحد أم أنه لا يقبل جداء عوامل أولية

 

و كذلك الحال بالنسبة للصفر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
هذه المشكلة رياضية وليست برمجية

يمكننا معالجتها كحالة خاصة 

انا تركت البرنامج هكذا لانك لم تبين كيف يجب التعامل معها في سوألك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أعرف أنه مشكلة رياضية

 

و الرياضيات من أساسيات البرمجة

 

لكن ما هو حل هذا المشكل الرياضى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لقد قرأت عن مشكلة الواحد و الصفر

 

و وجدت بأنهما عددان غير قابلان للتحليل

 

أي الخرج يكون 'Number of non-analysis of the initial product of factors'

 

لذا سأعدل في الكود الخاص بك

def primefactors(x):    if x==1 or 0:        return 'Number of non-analysis of the initial product of factors'    xx = x    li=[]    loop=2    while loop<=x:        if x%loop==0:            x = x /loop            li.append(loop)        else:            loop+=1    return str(xx) + '=' +'*'.join([ str(i) for i in li])print primefactors(1)

الآن بقي إختصاره فل يكن هذا تحديا بيننا و بين كافة الأعضاء

 

من يكتبه في أقل عدد من الأسطر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إذا كان فقط إختصار عدد الأسطر وليس الكود
فما رأيكم في طريقتي :)

def primeFactors(n):        i, f, x = 2, [], n        while i * i <= n:                if n % i: i += 1                else: n //= i; f.append(i)        if n > 1: f.append(n); return str(x) + ' = ' + ' * '.join([str(i) for i in f])        return Falseprint(primeFactors(12))
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إختصار جيد لكن

 

أنا قلت عندما يكون الدخل 1 أو 0 فإن الخرج يكون   Number of non-analysis of the initial product of factors

 

لكن False

 

لا بأس بها أيضا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إختصار جيد لكن

 

أنا قلت عندما يكون الدخل 1 أو 0 فإن الخرج يكون   Number of non-analysis of the initial product of factors

 

لكن False

 

لا بأس بها أيضا

 

انا صراحة غير متأكد من التحليل في الرياضيات اظن فقط الأرقام الصيحية الموجبة الأكبر من واحد هي الذي تتحلل لعواملها الأولية

اذا كان كلامي صح فإستثناء واحد وصفر غير صحيحة، لو أدخل المستخدم 3- اكيد تكون النتيجة خاطئة

اما بالنسبة لخرج الدالة انا افضل يكون التشييك خارج الدالة

مثال

if not primeFactors(1):        print('Number of non-analysis of the initial product of factors')        ....
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .