خطوات الاستخدام
الخطوة 1: فهم المسألة. مضروب العدد (n!) هو حاصل ضرب جميع الأعداد الصحيحة الموجبة من 1 إلى n. المطلوب هو حساب n! mod m، أي باقي قسمة n! على m. هذا الحساب شائع في التوافقيات ونظرية الأعداد والتشفير لتجنب الأعداد الكبيرة جداً.
الخطوة 2: مدخلات المستخدم. أدخل قيمة n (عدد صحيح غير سالب) وقيمة m (عدد صحيح موجب، عادة ما يكون أقل من 2^31). كلما زادت n، كلما زاد حجم n! بسرعة، لذا فإن الحساب المباشر قد يسبب تجاوزاً في البيانات. لذلك نستخدم عملية باقي القسمة بعد كل ضرب (modulo arithmetic) للحفاظ على الأرقام ضمن نطاق آمن.
الخطوة 3: الطريقة الحسابية. نستخدم خوارزمية تكرارية: نبدأ بـ result = 1 (لأن 0! = 1). ثم من i = 1 إلى n: نضرب result في i، ثم نأخذ باقي القسمة على m: result = (result * i) % m. هذه العملية تضمن أن النتيجة دائماً بين 0 و m-1، وتتجنب الأعداد الكبيرة. التعقيد الزمني هو O(n).