الرئيسية › الدروس › الحساب (Arithmétique)
العوامل الأولية والعاملي وC(n,p) والقواعد وArmstrong
العوامل الأولية، العاملي، الترتيبات والتوفيقات، تبديل القاعدة، الأعداد التامة وأعداد Armstrong.
دروس هذا الفصل
- التحليل إلى عوامل أولية
- العاملي، الترتيبات والتوفيقات
- تبديل القاعدة
- الأعداد التامة وأعداد Armstrong
الدرس 16.1 : التحليل إلى عوامل أولية
كل عدد n ≥ 2 يتكتب جداء أعداد أولية: 60 = 2 × 2 × 3 × 5. باش نلقاو العوامل هذي، نجرّبو نقسمو n على d = 2, 3, 4…: كي d يقسم n، نكتبوه ونعوّضو n بـ n div d؛ وإلا نتعدّاو لـ d اللي بعدو. نوقفو كي n تولّي 1.
نصيحة : نجمو نجرّبو d = 4 من غير خوف: كي نوصلو لـ 4، الـ 2 الكل خرجو، إذن 4 ما عادش تقسم n. كان الأعداد الأولية اللي يتكتبو.
انتبه : ما نزيدو d كان كي القسمة ما تنجحش: نفس العامل ينجم يرجع برشا مرّات (2 × 2 في 60).
بـ Python
كل عامل أولي يتكتب في سطر.
n = int(input())
d = 2
while n > 1:
if n % d == 0:
print(d)
n = n // d
else:
d = d + 1
بـ algorithme
boucle Tant que توقف كي n تولّي 1.
Algorithme Facteurs
Début
Lire(n)
d ← 2
Tant que n > 1 Faire
Si n mod d = 0 Alors
Ecrire(d)
n ← n div d
Sinon
d ← d + 1
FinSi
FinTantQue
Fin
TDO
Objet | Type/Nature
n, d | Entier
الدرس 16.2 : العاملي، الترتيبات والتوفيقات
الـ factorielle متاع n، نكتبوها n!، هي الجداء 1 × 2 × … × n (و 0! = 1). تعدّ قدّاش من طريقة نرتّبو بيها n حاجات. بيها نحسبو:
- الـ arrangements
A(n, p) = n! / (n − p)!: نختارو p حاجات من n بترتيب (منصّة)؛ - الـ combinaisons
C(n, p) = n! / (p! × (n − p)!): نختارو p حاجات من n من غير ترتيب (فريق).
فرصة باش نكتبو دالة fact(n) وننادوها برشا مرّات: هذا هو التحليل إلى وحدات.
نصيحة : النتائج أعداد صحيحة: نقسمو بـ div (في Python //) باش تقعد entier.
بـ Python
الدالة fact تتنادى خمسة مرّات باش نحسبو A(n, p) و C(n, p).
def fact(n):
f = 1
for i in range(2, n + 1):
f = f * i
return f
n = int(input())
p = int(input())
print("A =", fact(n) // fact(n - p))
print("C =", fact(n) // (fact(p) * fact(n - p)))
بـ algorithme
الدالة عندها TDO متاعها للمتغيّرات المحلية f و i.
DEF FN fact (n : Entier) : Entier
TDO
Objet | Type/Nature
f, i | Entier
Début
f ← 1
Pour i de 2 à n Faire
f ← f * i
FinPour
Retourner f
Fin
Algorithme Denombrement
Début
Lire(n)
Lire(p)
Ecrire("A = ", fact(n) div fact(n - p))
Ecrire("C = ", fact(n) div (fact(p) * fact(n - p)))
Fin
TDO
Objet | Type/Nature
n, p | Entier
الدرس 16.3 : تبديل القاعدة
إحنا نكتبو الأعداد في القاعدة 10 (الأرقام من 0 لـ 9). الـ ordinateur يستعمل القاعدة 2 (binaire، الأرقام 0 و 1)؛ ونلقاو زادة القاعدة 16 (hexadécimal، من 0 لـ 9 وبعد من A لـ F).
- القاعدة 10 → القاعدة b: قسمات متتالية على b. الـ بواقي، نقراوهم من الأخير للأول، هوما الأرقام. مثلا 13 = 1101 في binaire.
- القاعدة b → القاعدة 10: نقراو الأرقام من اليسار لليمين بـ
n ← n × b + chiffre. مثلا 1101 → 1، 3، 6، 13.
نصيحة : باش نحطّو كل باقي قدّام اللي قبلو، نبنيو chaîne: ch ← convch(r) + ch.
انتبه : لـ n = 0، الـ boucle Tant que n > 0 ما تدورش والـ chaîne تقعد فارغة: عالج الحالة هذي وحدها كان التمرين يطلبها.
بـ Python
التحويل من القاعدة 10 للقاعدة 2.
n = int(input())
ch = ""
while n > 0:
ch = str(n % 2) + ch
n = n // 2
print(ch)
بـ algorithme
convch تحوّل الباقي (entier) لـ chaîne.
Algorithme Binaire
Début
Lire(n)
ch ← ""
Tant que n > 0 Faire
ch ← convch(n mod 2) + ch
n ← n div 2
FinTantQue
Ecrire(ch)
Fin
TDO
Objet | Type/Nature
n | Entier
ch | Chaîne
الدرس 16.4 : الأعداد التامة وأعداد Armstrong
مواضيع الامتحانات تحبّ الأعداد المميّزة. كل واحد نختبروه بالحاجات اللي تعرفهم: الـ boucles، mod و div.
- عدد تام: يساوي مجموع قواسمو من غيرو هو. 28 = 1 + 2 + 4 + 7 + 14.
- عدد Armstrong: يساوي مجموع أرقامو، كل رقم مرفوع لقوّة عدد الأرقام. 153 = 1³ + 5³ + 3³.
نصيحة : لـ Armstrong، نمرّو على الأرقام مرّتين: مرّة باش نعدّوهم، ومرّة للمجموع. نخدمو على نسخة من n باش n تقعد كيما هي.
بـ Python
نختبرو كان عدد هو Armstrong.
n = int(input())
k = 0
c = n
while c > 0:
k = k + 1
c = c // 10
s = 0
c = n
while c > 0:
s = s + (c % 10) ** k
c = c // 10
if s == n:
print(n, "est un nombre d'Armstrong")
else:
print(n, "n'est pas un nombre d'Armstrong")
بـ algorithme
القوّة تتكتب ^ في الـ algorithme.
Algorithme Armstrong
Début
Lire(n)
k ← 0
c ← n
Tant que c > 0 Faire
k ← k + 1
c ← c div 10
FinTantQue
s ← 0
c ← n
Tant que c > 0 Faire
s ← s + (c mod 10) ^ k
c ← c div 10
FinTantQue
Si s = n Alors
Ecrire(n, " est un nombre d'Armstrong")
Sinon
Ecrire(n, " n'est pas un nombre d'Armstrong")
FinSi
Fin
TDO
Objet | Type/Nature
n, k, c, s | Entier
تدرّب مجانًا
كل درس فيه 3 تمارين مجانية مع تلميحات باش تطبّق الفصل هذا مع هنّيبوت.
← الفصل اللي قبل : البحث في tableau · الفصل اللي بعد : المصفوفات (Matrices) →
كل الفصول · شوف فروض 2 تكنولوجيا المصلّحة
الدروس كتبناها لـ Mission Carthage على أساس البرنامج الرسمي. الأستاذ متاعك يبقى المرجع.