تابع للموضوع السابق

https://arabia.io/programming/10358

لتسهيل قراءة الردود فضلا استخدم خدمة مثل pastebin أو repl.it أو والأفضل

https://gist.github.com/

نريد عمل برنامجين الأول يمر على الأعداد الصحيحة الفردية أكثر من3 ودون حد معين ويضع 0 إن كان مركب و 1 إن كان أولي ويجمع كل 8 بتات منها في بايت واحد أي unsigned char مرتبة البتات فيه من جهة الأصغر قيمة LSB ثم تكتب البايت في ملف primes.db ثم البايت التالي حتى ننهي كل الأعداد

البرنامج الثاني يفحصل أولية العدد كالتالي

  • إذا كان 2 فهو أولي

  • إذا كان زوجي فهو مركب

  • إذا كان فردي اطرح منه 3 ثم إزحه لليمين (اقسمه على 2) يعني مثلا 3 تصبح 0 و 5 تصبح 1 و 7 تصبح 2 و 9 تصبح 3 وهكذا

  • الرقم الناتج نزيح عن بداية الملف بمقدار مقسومه على 8 ثم اقرأ بايت واحد من الملف مثلا عند فحص هل 997 أولي؟ يكون البت المطلوب هو البت رقم 994 ومنها الإزاحة عن بداية الملف هي 497 بايت.

  • ننظر للبت الذي هو باقي القسمة على 8 (من خلال عمل bit-wise or مع 7 ثم إزاحة الواحد بمقداره ثم استعماله كقناع mark) فإن كان 1 فهو أولي وإلا فهو مركب.