PDA

نسخه کامل مشاهده نسخه کامل : ساخت برنامه ای کوچولو



amin.akmali
28-02-2012, 19:48
بچه ها سلام.من دانشجوی سال اول کامپیوترم. استاد به ما یه پروژه ای داده و من 2 ساعتع که دارم کار می کنم و چون هنوز تازه واردم نتونستم کاری کنم.:41:لطفا بهم کمک کنید
برنامه ای بنویسید که اعداد اول بین 1 تا 100 را چاپ کند.:13:

Arrowtic
28-02-2012, 20:05
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

خدمت شما دوست عزیز

amin.akmali
28-02-2012, 20:09
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

خدمت شما دوست عزیز


یک کمی برام توضیح میدی.

Arrowtic
28-02-2012, 20:45
البته:
ببینید ما میدونیم هر عدد اولی تعداد مقسوم علیه هاش 2 باید باشه دیگه.چون بر خودش و 1 بخش پذیره.برا همین اومدیم گفتیم اعداد 1 تا 100 رو بگیره و برای هر کدوم دوباره از یک تا اون عدد رو بگیره و بخش پذیری عدد رو بر اونها(اعداد کوچکتر مساوی خودش) چک کنه(باقیمانده تقسیم بر اونها رو بدست میاره اگه صفر بود یعنی بخش پذیر).اگه بخش پذیر بودش یدونه به متغیر b اضافه کنه.مسلمه هر عددی که b براش بشه 2 یعنی 2 مقسوم علیه داره و حتما اون 2 مقسوم علیه 1 و خودشن.بعد از حساب کردن b برای یه عدد یه شرط گذاشتیم که اگه b 2 میشد اون عددو چاپ کنه.پس ظاهرا درسته ولی فقط یه مشکل داره تا اینجا اونم اینه یه بار برای i ما که 1 باشه که حساب کنه b برابر 1 در میاد.بعد که سراغ 2 میره b همچنان 1 هستش و 2 رو به اشتباه دارای 3 مقسوم علیه نشون میده.(1 مقسوم علیه از 1 مونده 2 تا هم واسه خودش) و به همین ترتیب هی b زیاد میشه و مثلا برای 3 فکر کنم 5 تا مقسوم علیه در نظر گرفته میشه که غلطه پس در نتیجه ما باید کاری کنیم که برای هر i متغیر b رو از صفر در نظر بگیره برای همینم وقتی که خوب کارشو با b کردش برنامه قبل از اتمام حلقه یه b=0 میذاریم و اینطوری وقتی b برای 1 شدش 1 بعد که سراغ 2 میره b دوباره میشه 0 و بعد که سراغ 3 میره(i=3) متغیر b=0 میشه دوباره و الی آخر و مشکل برطرف میشه.پس تو یک جمع بندی کلی:
1)شروع
2)b=0
3) برای i=1 تا 100:
1.3)برای j=1 تا i:
1.1.3)باقیمانده i بر j را حساب کن.اگر باقیمانده صفر بود به b یک واحد اضافه کن.
2.3)اگر b=2بود i را چاپ کن.
3.3)متغیر bرا برابر صفر قرار بده.
4)پایان

P.S:اون % همون طور که میدونید علامت حساب کردن باقیمانده هستش.
P.S2:البته راهای دیگه ایم هست مثلا جای حساب کردن تعداد مقسوم علیه ها میتونیم مجموع مقسوم علیه ها رو به دست بیاریم برا هر عدد چرا که میدونیم اگر a عددی اول باشد مجموع مقسوم علیه هاش a+1 هستش.

god of war 2
01-03-2012, 18:47
یه نکته ای که وجود داره اینه که لازم نیست عمل تقسیم رو روی تمام اعداد تا خود عدد انجام بدید فقط کافی تا عدد "n/2" اینکار انجام بشه.
یعنی مثلا برای آزمایش عدد 19 عمل تقسیم تا عدد 9 انجام بشه کافی هست.
برای مثال کد زیر(البته این کد اعداد 1 تا 3 رو چاپ نمیکنه ولی میتونید این اعداد رو خودتون اضافه کنید):

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداین کد به مراتب سرعت اجرای بیشتری نسبت به کد دوستمون Arrowtic داره البته چنین چیزی در چنین برنامه ای اصلا مهم نیست ولی گفتنش هم خالی از لطف نیست.