البرمجة

برمجة الأعداد الأولية في C

عاملة الأرقام الأولية في لغة البرمجة C

لحل مشكلتك بشكل أكثر عمومية، يمكنك تعديل الدالة factor لتتعامل بشكل أفضل مع العوامل الأولية. إليك الكود المعدل:

c
#include #include #include void prime(int num); void factor(int num); int main() { int num; printf("Enter your number: "); scanf("%d", &num); prime(num); return 0; } void prime(int num) { int sq, i; sq = abs(sqrt(num)); if (num == 2) printf("\n%d is a prime number", num); else { for (i = 2; i <= sq; i++) { if (num % i == 0) { printf("\n%d is not a prime number\n", num); factor(num); return; } } printf("\n%d is a prime number", num); } } void factor(int num) { int i; for (i = 2; i <= num; i++) { again: if (num % i == 0) { num = num / i; printf("%d ", i); goto again; } } }

في هذا التعديل، تم تحسين الدالة factor للتعامل مع العوامل الأولية بشكل عام. ستتوقف عندما يكون num يساوي 1، وهذا يعني أن جميع العوامل الأولية قد تم استخدامها.

المزيد من المعلومات

بالتأكيد! في البرنامج المعدل، تم تحسين الدالة factor لتتعامل بشكل أفضل مع العوامل الأولية. عندما تجد عاملاً أوليًا، تطبعه وتقوم بتقسيم num عليه. ثم تستخدم goto للعودة إلى الجزء العلوي من الحلقة لمتابعة البحث عن العوامل الأولية الأخرى ل num المحدث.

عندما تبدأ الدالة، تبدأ من 2 وتبحث عن العوامل الأولية ل num، وهي الأعداد التي لا يمكن قسمها على أي عدد سوى نفسها والواحد. إذا وجدت عاملاً أوليًا، تقوم بطباعته وتقسم num عليه، ثم تعيد الدالة لتبحث عن العوامل الأولية الأخرى لل num المحدث. تتوقف العملية عندما يكون num يساوي 1، مما يعني أن جميع العوامل الأولية قد تم استخدامها.

بهذه الطريقة، يتم الآن تحسين الأداء والفعالية للبرنامج لأنه يبحث عن العوامل الأولية الخاصة بالعدد المُدخل بشكل أكثر عمومية وليس فقط بعض الأعداد الأولية المُحددة بشكل صلب.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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