در این قسمت تیم کدگیت را با آموزش اعداد کامل در جاوا همراهی کنید. عددی کامل است که مجموع مقسوم‌علیه‌های آن برابر با خود عدد باشد. در این جلسه به پیاده سازی و انواع روش محاسبه اعداد کامل در ریاضیات می‌پردازیم. پیشنهاد می‌کنیم پیش‌نیازهای این آموزش را مطالعه کنید:

اعداد کامل

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

برای شناسایی یک عدد کامل تابعی را می‌نویسیم که با وارد کردن یک عدد به آن در خروجی به ما کامل بودن یا نبودن آن را نمایش دهد.

به عنوان مثال فرض کنید ما ورودی 15 داشته باشیم. کامل بودن آن را به صورت زیر بررسی می‌کنیم:

N = 15

مقسوم علیه‌های N = 1، 3 ، 5

مجموع مقسوم علیه‌های N = 1+3+5 = 9

همانطور که می‌بینید عدد 15 کامل نیست زیرا مجموع مقسوم‌علیه‌های آن برابر با 15 نمی‌شود.  به عنوان مثالی دیگر عدد 6 را بررسی می‌کنیم:

N = 6

مقسوم علیه‌های N = 1، 2 ، 3

مجموع مقسوم علیه‌های N = 1+2+3 = 6

عدد 6 یک عدد کامل است.

پیاده سازی اعداد کامل در جاوا

برای پیاده سازی اعداد کامل در جاوا دو روش وجود دارد:

  • یک راه حل ساده این است که تمامی اعداد بین 1 و n-1 را بررسی کنید و ببینید که آیا یک مقسوم علیه است یا خیر. مجموع تمام مقسوم علیه ها را نیز بدست آورید. اگر این مجموع برابر با n باشد پس n یک عدد کامل است.
  • یک روش کارامد دیگر این است که تا ریشه عدد n  را بررسی کنید. اگر عدد i بر عدد n بخش پذیر باشد پس هردو عدد i و n/i را بر مجموع اضافه نمایید. (برای پیاده سازی ما از این روش استفاده می‌کنیم).

کد اعداد کامل در جاوا به صورت زیر است:

public static void main(String[] args) {

          System.out.println("Below are all perfect" + "numbers till 10000");

          for (int n = 2; n < 10000; n++)

              if (isPerfect(n))

                   System.out.println(n + " is a perfect number");



     }



     static boolean isPerfect(int n) {

          int sum = 1;



          for (int i = 2; i * i <= n; i++) {

              if (n % i == 0) {

                   if (i * i != n)

                        sum = sum + i + n / i;

                   else

                        sum = sum + i;

              }

          }

          if (sum == n && n != 1)

              return true;



          return false;

     }

خروجی کد بالا اعداد کامل از یک تا 10000 می‌باشد:

Below are all perfectnumbers till 10000

6 is a perfect number

28 is a perfect number

496 is a perfect number

8128 is a perfect number

سورس کد:

Download “دانلود سورس اعداد کامل در جاوا”

Perfect-Number-in-Java-www.codegate.ir_.zip – 315 بار دانلود شده است – 995,00 بایت

پسورد: www.codegate.ir