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

نام تاپیک: محاسبه 1000 امین عدد اول

  1. #1

    محاسبه 1000 امین عدد اول

    سلام
    من میخوام یک برنامه با سی شارپ بنویسم که اعداد اول رو محاسبه کنه و بریزه تو یک کمبوباکس تا برسه به هزارمین عدد اول و محاسبه متوقف بشه اما برنامه ای که نوشتم خیلی سریع سرعت اجراش کم میشه و زیاد روی پردازنده و رم تاثیر میزاه
    لطفا اگه میشه در مورد روش کار و الگوریتم بهینه این مسئله توضیح بدین
    با تشکر

  2. #2

    Post نقل قول: محاسبه 1000 امین عدد اول

    سلام
    این الگوریتم رو ببینید





    ویرایش:
    نقل قول نوشته شده توسط Amir 2010a مشاهده تاپیک
    این روش ها بهینه نیست و زمان زیادی رو برای اجرا میگیره
    حالا اکر به جای n عدد 2000 بزاریم یعنی قرار باشه برنامه دو هزارمین عدد اول رو چاپ کنه یک ساعت یا بیشتر زمان میگیره !!!
    روش بهتری وجود نداره ؟
    دوست عزیز شما اصلا برنامه ای من دادم رو دیدی؟
    برنامه ای که فرستادم 3000 امین عدد اول رو کمتر از 30 ثانیه می ده...
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Share & Learn : چهارشنبه 05 آذر 1393 در 14:19 عصر

  3. #3
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: محاسبه 1000 امین عدد اول

    نقل قول نوشته شده توسط Amir 2010a مشاهده تاپیک
    سلام

    لطفا اگه میشه در مورد روش کار و الگوریتم بهینه این مسئله توضیح بدین
    با تشکر
    ....................................
     public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    private void FindPrimeNumber()
    {
    int topNumber = 1000;
    var numbers = new BitArray(topNumber, true);

    for (int i = 2; i < topNumber; i++)
    if (numbers[i])
    {
    for (int j = i * 2; j < topNumber; j += i)
    numbers[j] = false;
    }

    int primes = 0;

    for (int i = 1; i < topNumber; i++)
    if (numbers[i])
    {
    primes++;
    comboBox1.Items.Add(i);
    }


    }
    private void Form1_Load(object sender, EventArgs e)
    {
    FindPrimeNumber();
    }
    }

  4. #4

    نقل قول: محاسبه 1000 امین عدد اول

    این روش ها بهینه نیست و زمان زیادی رو برای اجرا میگیره
    حالا اکر به جای n عدد 2000 بزاریم یعنی قرار باشه برنامه دو هزارمین عدد اول رو چاپ کنه یک ساعت یا بیشتر زمان میگیره !!!

    روش بهتری وجود نداره ؟

  5. #5

    نقل قول: محاسبه 1000 امین عدد اول

    این روش را امتحان کنید

    int TedadeAdadeAvval = 2000;
    List<int> aval = new List<int>();
    bool flag = true;
    int i = 3;
    aval.Add(2);
    while(aval.Count < TedadeAdadeAvval)
    {
    foreach (var element in aval)
    {
    if (element > i / element )
    break;
    if (i % element == 0 )
    {
    flag = false;
    break;
    }
    }
    if (flag)
    aval.Add(i);
    else
    flag = true;
    i++;
    }
    comboBox1.DataSource = aval;

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

  1. مبتدی: درخواست برنامه محاسبه یک عدد اول و ضرب دو آرایه
    نوشته شده توسط mehdi592 در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 3
    آخرین پست: دوشنبه 26 خرداد 1393, 00:34 صبح
  2. برنامه ای برای نمایش 1392 امین عدد اول
    نوشته شده توسط shahram176 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 15 اسفند 1391, 17:11 عصر
  3. مبتدی: کلاس Math تابع محاسبه عدد اول داره؟
    نوشته شده توسط گل نیلوفر آبی در بخش C#‎‎
    پاسخ: 3
    آخرین پست: سه شنبه 16 آذر 1389, 13:26 عصر
  4. درخواست برنامه چاپ n امین عدد اول در vb
    نوشته شده توسط iceboy67 در بخش برنامه نویسی در 6 VB
    پاسخ: 4
    آخرین پست: پنج شنبه 15 فروردین 1387, 23:10 عصر

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

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