آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

الگوریتم مقسوم علیه های اول یک عدد

GOOD  9 سال پیش  9 سال پیش
+1 0

 int numberj = 10;
        for (int i = 3; i < numberj; i++) {
            if (numberj % i == 0) {

                Log.w("LOG", "magh som haye adad = " + "khodeadad va 2 va : " + i);
                if (i % 2 == 0) {
                    Log.w("LOG", "avalnist" + i);

                }

            }

        }

این الگوریتم درست کار میکنه اگر میکنه نظرتون چیه واگر نمیکنه مشکلش چیه ممنون

0 0
اصلا سوالتون اشتباه است چون اعداد اول بجز خودش و یک بر عدد دیگه ای بخش پذیر نیست که شما بخواهید الگوریتم مقسوم علیه های اول یک عدد رو بسازید و سوالتون کالا اشتباهه!!!!!!!!!!!!!!!!!!!!!!!!!!! (9 سال پیش)
+1 0
>> Hamid گفتن مقسوم علیه های اول یک عدد ، نه مقسوم علیه های یک عدد اول ، اگه دومی رو میگفتن حق با شما بود و عدد اول مقسوم علیه نداره ، ولی یک عدد میتونه مقسوم علیه اول داشته باشه مثلا عدد 20 ، 6 مقسوم علیه داره که از بین اونا 2 و 5 اوله . (9 سال پیش)
0 0
حق با شماست اشتباه از من بود سوال رو درست متوجه نشدم! (9 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
charlie  9 سال پیش
+1 0

سلام،‌اول ببينيد منطق الگوريتمتون رو درست فهميدم يا نه؟ ، شما تو اين الگوريتم اين قضيه رو مطرح كرديم كه مقسوم عليه هاي اعداد اول بر دو بخش پذير نيستند بجز عدد دو در مورد بقيه ي اعداد صدق ميكنه و اگه عددي مقسوم عليه اش بر دو بخش پذير بود عدد اول نيست ، واسه همينم تو ي حلقه ي for كوچكتر رو فقط گذاشتين در حاليكه در تعريف اعداد اول داريم كه عدد اول عدديست كه بر يك و خودش برعدد ديگه اي بخش پذير نيست، ولي چالش كار اينجاست كه مشخص كردن متغييري براي مشخص كردن اينكه عدد اول هست يا نه يه مقداري سخته من كد شما رو يه ذره تغيير دادم اما براي دو جوابگو نيست پس الگوريتمم كامل و درست نيست ، ولي بازم روش كار ميكنم ببينم به كجا ميرسم.

         int number = 17;
int counter = 0;
for (int i = 1; i <= number; i++) {
if (number % i == 0) {
if (i % 2 == 0) {
Log.i("LOG", "avalnist " + i);
}
counter++;
}

}
if (counter == 1) {
Log.i("LOG", number + " is Aval");
}
+1 0
سلام ، نا امیدتون نکنم ولی هر دو الگوریتم کلا اشتباه است ( البته اگه دنبال مقسوم علیه های اول یک عدد هستید ) ، راجع به الگوریتم اعداد اول بیشتر فکر کنید . یکی از بچه ها بهترین و کوتاهترین الگوریتم رو در این لینک نوشته ( انتهای صفحه ) . (9 سال پیش)
0 0
من كلا قضيه رو اشتباه گرفتم، فكر كردم دنباله اينيم كه تعيين كنيم عدد اول هست يا نه؟ نه مقسوم عليهاش. (9 سال پیش)
پاسخ به سوال 
GR  9 سال پیش
0 0

دوستای گلم ازین استفاده کنین حله

  int number = 15;
for (int i = 1; i <= number; i++) {

if (number % i == 0) {
int value = 0;
for (int index = 1; index <= i; index++) {
if (i % index == 0)
value++;
}
if (value == 2)
{
Log.i("LOG", "" + i);
}
}
}
0 0
داخل if متغیر تعریف کردین این اشکالی نداره؟ (9 سال پیش)
0 0
اگه متغيري كه داخل block تعريف كرده باشيم ، تو اين مثال داخل if‌، اگه خارج از block ازش استفاده نكنيم، نه، مشكلي نداره. (9 سال پیش)
پاسخ به سوال 
محسن  9 سال پیش
0 0

اینم متود الگوریتم من. چون برای اعداد بسیار بزرگ یکم طول میکشه بنابراین خط بعدش یه متن گذاشتم تا مطمئن شم محاسبه تمام شده!هر عددی میخواین امتحان کنین

 public void num(int n) {
        for (int i = 1; i <= n; i++) {

            int x = n % i;
            if (x == 0) {
                if (i % 2 != 0) {
                    if (i % 3 != 0) {
                        if (i % 4 != 0) {
                            if (i % 5 != 0) {
                                if (i % 6 != 0) {
                                    if (i % 7 != 0) {
                                        if (i % 8 != 0) {
                                            if (i % 9 != 0) {

                                                Log.i("LOG", "" + i);

                                                if (i == 2) {
                                                    if (i == 3) {
                                                        if (i == 5) {
                                                            if (i == 7) {
                                                                Log.i("LOG", "" + i);

                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        Log.i("LOG", "پایان محاسبه");
   


پاسخ به سوال 
mhpakdel  9 سال پیش
+1 0

 این کد کوتاه تره و کار میکنه

        int mynumber = 1000;
        int count = 0;
        for (int i = 1; i <= mynumber; i++) {
            if (mynumber % i == 0) {
                for (int j = 1; j <= i; j++) {
                    if (i % j == 0) {
                        count++;
                    }
                }
                if (count <= 2) {
                    Log.i("LOG", "Number is: " + i);
                }
                count = 0;
            }
        }

 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .