سلام خدمت دوستان عزیز برنامه نویس برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
آرمین جان یه اشتباه کوچیک تو توضیح پست دوم داشتی :
برنامه میاد اعداد اون Range رو که بهش دادم وارد ListBox می کنه (تمام اعداد مثلا تا 100 هزار) بعد شروع به تقسیم می کنه اگر هر عددی از اون حلقه For عبور کرد از لیست پاک می کنه! شرط حلقه For هم اینه که عدد باقی مانده صفر داشته باشه!
تا 100 هزار تعداد اعداد اول رو به طور کاملا دقیق به دست میاره ولی بالاتر ممکنه چند تا عدد جا بذاره! برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
روش بسیار عالیه برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنیدیا 211 : جذر 211 تقریبا" 14/5 هستش. اعداد اول کوچک تر یا مساوی 14 عبارت اند از 2 ، 3 ، 5 ، 7 ، 11 ، 13 . 211 بر هیچ یک از این شش عدد اول بخش پذیر نیست پس 211 عدد اول است.
ولی مشکل اینه که باز اون اعداد اول پایین تر از مثلا 200 رو چجوری میشه گیر آورد تا تقسیم کرد!
کلا تو اون فرمول دو آرایه تعریف میشه و آرایه ها میاد و عدد ها رو میگیرن ! (به وسیله حلقه For عددها در آرایه جاگذاری میشن ) توضیح بیش تر خواستی در خدمتم!آیا تو این سورس به ازای هر عدد یه متغیر (متغیر دارای بعد) تعریف می شه؟! یا این که من دارم اشتباه می کنم...
والا مبین جان بدون حلقه فکری به ذهنم نرسید!البته میشد بدون آرایه و حلقه foreach هم پیاده سازی کرد این برنامرو .. در ضمن آرمین جان کاملا درست میگین این برنامه برای اعداد بزرگ اصلا خوب نیست چون اصلا اعداد بزرگ توی محدوده متغیر Integer جا نمیگیرن
متغیر int میتونه تا 2147483647 رو در خودش جا بده. اگر uInt تعریفش کنیم میشه 4294967295 ! اگر هم uLong تعریفش کنیم میشه 18446744073709551615 !
مقدار خیلی زیادی ولی بازم محدوده! مگر بریم سراغ decimal که دیگه کلا منابع سیستم تلف میشه برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
بازم نمیشه! چون عدد باید دوباره از string به int تبدیل بشه تا عملیات ریاضی روش انجام بشه! برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنیددر اینصورت باید عدد وارد شده رو با مثل الگوریتم خواندن رشته در C که رشته توی آرایه قرار میگرفت اعداد رو خوند ..
نمایی از برنامه نهایی که نوشتم. محاسبه 100 هزار عدد اول رو تموم کرده (تعداد رو هم نوشته!) :
محاسبه حدود 15 ثانیه طول کشید.....
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
با تشکر علی برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید







پاسخ با نقل قول
Bookmarks