نمایش نتایج 1 تا 4 از 4

نام تاپیک: پیدا کردن مقسوم علیه های اول یک عدد

  1. #1

    پیدا کردن مقسوم علیه های اول یک عدد

    سلام دوستان

    الگوریتم پیدا کردن مقسوم علیه های اول یک عدد رو می خواستم.

    درخواست دیگه ای هم دارم:
    اگر لیستی شامل چند عدد رندوم مثل زیر داشته باشیم:

    2,3,41,33,51,57,109,471,1234,1231

    چطور میشه اعداد اول رو از این لیست اعداد بیرون کشید(شناسایی کرد)


    زبان هم ترجیحا سی شارپ

    ممنون از راهنمایی شما

  2. #2
    کاربر دائمی آواتار me.enik
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    تهران
    پست
    309

    نقل قول: پیدا کردن مقسوم علیه های اول یک عدد

    سلام.
    روش کلی پیدا کردن مقسوم علیه های یک عدد :
    از 1 تا خود اون عدد چک میری ( for ), هر دفعه هم که داری میری, یه بار شرط میزاری که اگر باقی مانده اون عدد خودت, بر این مساوی با 0 بود, پس این عدد مقسوم علیه اون هستش.
    به طور کلی میشه گفت :
    یه فور -> در هر بار اجرا, چک -> چک کردن اینکه باقی مانده صفر هست یا نه -> اگر صفر بود, پس مقسوم علیه هستش.
    البته فکر کنم برای اینکه برنامه ات سریع تر بشود, میتونی از 1 تا نصف اون عدد بری, مثلا اگر میخوای مقسوم علیه های 10 را پیدا کنی, از 1 تا 5 بروی, کافی باشه, چون مطمئن هستیم که بعد از اون نصف اون عدد, دیگر هیچ مقسوم علیه ای وجود ندارد.

    حالا وقتی اون عدد ها ( مقسوم علیه ها ) رو پیدا کردی, دوباره میای و روی هر کدوم از اونا چک میکنی که ببینی بیشتر از 2 تا مقسوم علیه دارند یا نه, اگر بیشتر بود که اول نیستند, اگر کمتر (!!) یا مساوی بود که عدد اول هستند.
    البته این بار باید از 1 تا خود اون عدده بری تا بتونی بفهمی.

    روش های دیگه ای هم وجود داره که تقریبا تمام روش ها مثل هم هستند و از یک جور قواعد کلی استفاده میکنند.
    اگر خواستی, سورس جفت این برنامه ها رو دارم که میتونم برات بزارم, سورس ها به زبان ++c هستش که میتونم با پاسکال هم برات بنویسم تا ازشون استفاده کنی.
    آخرین ویرایش به وسیله me.enik : دوشنبه 12 تیر 1391 در 10:18 صبح دلیل: اضافه کردن توضیحات بهتر !!

  3. #3
    کاربر دائمی آواتار me.enik
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    تهران
    پست
    309

    نقل قول: پیدا کردن مقسوم علیه های اول یک عدد

    در مورد اون اعداد رندم هم دقیقا باید همون کار رو بکنی.
    یعنی باید بیای و مثلا برای بار اول, عدد 41 را انتخاب کنی و بیای چک کنی ببینی که اول هستش یا نه.
    و دفعه بعد یه عدد دیگه رو و ... .

    برای چک کردن هم اون بالا گفتم, ولی بازم میگم تا بهتر متوجه بشی.

    فکر کن ما الآن عدد 41 را میخواهیم ببینیم اول هستش یا نه.
    میایم و یه فور ( for ) میزاریم از یک تا خود اون عدده, در هر بار اجرا شدن for هم, میام و چک میکنیم که آیا اون عدد, که الآن 41 هستش, بر اون عدد داخل for یخشپذیر هستش یا نه, یا مثلا باقی مانده اش مساوی با صفر هستش یا نه, حالا اگر شرط درست بود, مقدار یه متغییری رو به علاوه ی مقدار قبلی و بعد به علاوه ی 1 میکنیم, یعنی مثلا ::
    توی پاسکال :
    a=a+1

    توی سی پلاس پلاس :
    a+=1

    توی سی شارپ :
    بلد نیستم که !!

    خب, پس میایم و این کار رو انجام میدیم, حالا وقتی که اون for تموم شد, یعنی بیرون از حلقه ی for, میایم و میبینیم که آیا اون عدده بزرگتر از 2 هستش, اگر بودش که عدده اول نیستش, اگر نبودش که عدده اول هستش.



    راستی, قطعا روش های بهینه تری وجود داره که بتوان از اون ها استفاده کرد, ولی فکر کنم برای شما همین این روش ها کافی باشه.
    و در حقیقت, باید روش های بهینه تر را, خودتون کشف کنید !! :d


    تا حد امکان, سعی کردم توضیحات رو واضح بدم.
    اگر جایی رو نفهمیدی, بگو بیشتر توضیح بدهم.

  4. #4
    کاربر جدید آواتار atefe70
    تاریخ عضویت
    مهر 1390
    محل زندگی
    بوشهر
    سن
    32
    پست
    19

    نقل قول: پیدا کردن مقسوم علیه های اول یک عدد

    میشه بهم بگید چجور میتونم این کد رو درس کنم :

    اخه برای بعضی اعداد درسته ولی برای عددی مثل 30 بجای که به من بگه 3تا مقسوم علیه اول داره . میگه 4 تا . !!!!!!!!

    Dim x As Integer
    Dim s As Integer
    Dim r As Integer
    Dim j As Integer
    Dim i As Integer
    s = 0
    j = 2 'chon adad aval az 2 ast
    x = InputBox("enter a number")

    For i = 1 To x / 2
    If (x Mod i = 0) Then
    r = i Mod j
    If r = 1 Then
    s = s + 1
    End If

    End If
    Next i

تاپیک های مشابه

  1. سوال: الگوریتم پیدا کردن تعداد رقم های یک عدد
    نوشته شده توسط amir_grdo در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 8
    آخرین پست: چهارشنبه 25 تیر 1399, 11:16 صبح
  2. مقسوم علیه های مشترک 2 عدد در Visual Basic 6
    نوشته شده توسط Henry14 در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: پنج شنبه 21 اردیبهشت 1391, 12:49 عصر
  3. سوال: الکوریتم برای چاپ مقسوم علی های اول عدد n
    نوشته شده توسط kral_pontiac در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 6
    آخرین پست: چهارشنبه 20 آبان 1388, 09:50 صبح
  4. مقسوم علیه های یک عدد
    نوشته شده توسط omid tashakor در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 3
    آخرین پست: جمعه 17 مهر 1388, 13:03 عصر
  5. سوال: مقسوم علیه های فرد عدد
    نوشته شده توسط azv_2008 در بخش برنامه نویسی در 6 VB
    پاسخ: 14
    آخرین پست: یک شنبه 22 اردیبهشت 1387, 01:03 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •