ما هو غربال إراتوستينس
غربال إراتوستينس هو خوارزمية لسرد الأعداد الأولية حتى عدد معين. الخوارزمية بسيطة ويمكن تنفيذها باتباع الخطوات التالية:
- قم بإنشاء مصفوفة من القيم المنطقية (bool) تحتوي على N عنصرًا وهيئ جميع العناصر إلى true.
- قم بتعيين العنصرين الصفر والأول من المصفوفة إلى false (لأن 0 و 1 ليسا عددين أوليين).
- إذا كان العنصر الثاني في المصفوفة هو true ، فقم بطباعة 2 كعدد أولي.
- قم بتعيين جميع العناصر المضاعفة للعدد 2 بدءًا من $2^2$ إلى false ※
- إذا كان العنصر الثالث في المصفوفة هو true ، فقم بطباعة 3 كعدد أولي.
- قم بتعيين جميع العناصر المضاعفة للعدد 3 بدءًا من $3^2$ إلى false.
- كرر نفس العملية للعناصر الرابع والخامس ، … ، والعنصر N.
※ السبب في تعيين العناصر الأكبر من المربع إلى false هو أن الأعداد الأصغر من المربع قد تمت معالجتها بالفعل (تم إكمال السرد).

التنفيذ في Rust
| |
نسخة أسرع قليلاً
سنقوم بتنفيذ نسخة أسرع قليلاً مع مراعاة النقاط التالية:
- بدلاً من تهيئة المصفوفة إلى true ، نقوم بتهيئتها إلى false (هذا أسرع).
- نظرًا لأن مضاعفات 2 ليست أعدادًا أولية ، سنتخطى عملية تعيين مضاعفات 2 إلى false.
- ليس من الضروري التكرار حتى n ، إذا قمت بسرد الأعداد الأولية حتى الجذر التربيعي لـ n ، يمكنك سرد الأعداد الأولية حتى n.
| |
