گروه مهندسی نرم افزار مازند پرداز

وبلاگ مازند پرداز به منظور آشنایی بیشتر کاربران با مهندسی نرم افزار و نیز انواع زبان های مختلف برنامه نویسی ایجاد شده است.

گروه مهندسی نرم افزار مازند پرداز

وبلاگ مازند پرداز به منظور آشنایی بیشتر کاربران با مهندسی نرم افزار و نیز انواع زبان های مختلف برنامه نویسی ایجاد شده است.

اعداد کامل

اعداد کامل


در نظریه اعداد، عدد کامل، یک عدد صحیح مثبت است که برابر با مجموع مقسوم‌علیه‌های سرهٔ مثبت خود (همهٔ مقسوم‌علیه‌های مثبتش غیر از خود عدد) باشد. همچنین به طور هم ارز، یک عدد کامل، عددی است که نصف مجموع همهٔ مقسوم‌علیه‌های مثبت خود باشد. (ویکی پدیا)


نخستین عدد کامل ۶ است. زیرا ۱+۲+۳=۶ یا به طور هم ارز، ۶=۲ / (۱+۲+۳+۶). بعد از آن ۲۸ و بعد از آن به ترتیب ۴۹۶ و ۸۱۲۸ قرار دارند.


الگوریتم کلی اعداد اول: 

Function IsPerfectNumber (Num) As Boolean

SumOfDivisors <-- 1

Counter <-- 2

MaxCounter <-- Num / 2

while Counter <= MaxCounter do

if Num mod Counter = 0 then

SumOfDivisors <-- SumOfDivisors + Counter

if SumOfDivisors > Num then

return false

Counter <-- Counter + 1

if SumOfDivisors = Num then

return true

return false

  

 

C++, C#


bool IsPerfectNumber(long Num)

{

long SumOfDivisors = 1;

long Counter = 2;

long MaxCounter = Num / 2;

while (Counter <= MaxCounter)

{

if (Num % Counter == 0)

SumOfDivisors += Counter;

if (SumOfDivisors > Num)

return false;

Counter++;

}

if (SumOfDivisors == Num)

return true;

return false;

}



VB.NET


Function IsPerfectNumber(ByVal Num As Long) As Boolean

Dim SumOfDivisors As Long = 1

Dim Counter As Long = 2

Dim MaxCounter As Long = Num / 2

While (Counter <= MaxCounter)

If Num Mod Counter = 0 Then SumOfDivisors += Counter

If SumOfDivisors > Num Then Return False

Counter += 1

End While

If SumOfDivisors = Num Then Return True

Return False

End Function



Python


def IsPerfectNumber(Num):

    SumOfDivisors = 1

    Counter = 2

    MaxCounter = Num / 2

    while Counter <= MaxCounter:

        if Num % Counter == 0:

            SumOfDivisors += Counter

        if SumOfDivisors > Num:

            return False

        Counter += 1

    if SumOfDivisors == Num:

        return True

    return False



F#


let IsPerfectNumber(Num : int64) : bool =

    let mutable SumOfDivisors : int64 = 1L

    let mutable Counter : int64 = 2L

    let MaxCounter : int64 = Num / 2L

    let mutable rv : bool = false

    while Counter <= MaxCounter do

        if Num % Counter = 0L then 

            SumOfDivisors <- SumOfDivisors + Counter

        if SumOfDivisors > Num then 

            Counter <- MaxCounter

        Counter <- Counter + 1L

    if SumOfDivisors = Num then

        rv <- true

    rv


دانلود سورس کدها: 

C++

C#

VB.NET

F#

Python


نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.