14-11-17, 12:00 AM
بسم الله الرحمن الرحيم
(رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي)
كيفية ايجاد العدد الأولي
كما نعلم اعزائي أن العدد الاولي لا يبقل القسمة إلا على نفسه وعلى الرقم (1).
طيب كيف نعلم أن عدد ما أولي أم لا برمجيا؟
الحل يكمن في معرفة معاملات العدد. كيف؟
عندما نقول أن العدد الأولي لا يقبل القسمة إلا على نفسه وعلى الرقم (1) معناه أن عدد معاملات الرقم الأولي هو 2
بمعنى أي رقم عدد معاملاته هو 2 هو عدد أولي وأي رقم تتجاوز عدد معاملاته الـ2 هو عدد غير أولي.
الان نأتي الى الامثلة/ (الامثلة باستخدام فيجوال ستوديو 2017 C#7.0 لذا ربما لا يعمل المثال بالشكل المطلوب في الاصدارات القديمة، لذا سارفق نسخة اخرى تعمل على جميع الاصدارات).
الكلاس Prime:
PHP كود :
namespace PrimeNumber
{
public class Prime
{
public bool IsPrime(int numberToCheck)
{
#region Factors local function
int FactorsOfNumber()
{
var counter = 0;
for (int i = 1; i <= numberToCheck; i++)
{
if (numberToCheck % i == 0)
{
counter++;
if (counter > 2)
{
break;
}
}
}
return counter;
}
#endregion
return FactorsOfNumber() == 2;
}
}
}
كيفية الاستدعاء:
PHP كود :
using System;
namespace PrimeNumber
{
class Program
{
static void Main(string[] args)
{
var prime = new Prime();
var result = prime.IsPrime(5) ? "Prime" : "Not Prime";
Console.WriteLine(result);
Console.ReadKey();
}
}
}
رابط المثال على حسابي على الـ github:
رابط المثال لجميع الاصدارات:
والحمد لله رب العالمين