# زبان های اسکریپتی > Classic ASP >  الگوریتم اعداد اول

## saeedkhan

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

----------


## امیر-نا

با سلام اینم کدش:

function Prime&#40;n as integer&#41;
dim i,t
for i=1 to n 
if n mod i=0 then t=t+1
if t=2 then 
return=1
else return=0
end function

dim i
for i=1 to 200 
if prime&#40;i&#41; then
response.write i
 

اگه نشد بگو تا برات کدشو بنویسم بفرسم
امیر

----------


## M-Gheibi

سلام
برای نمایش اعداد اول از 1 تا x میتونید از تابع زیر استفاده کنید:
&lt;%
function prime&#40;x&#41;
if x &lt; 2 then
	response.write &#40;"No number"&#41;
end if
for m = 2 to x
	for i = 1 to m
		n = m mod i
		if n = 0 then
			c = c + 1
		end if
	next
	if c = 2 then
		response.write&#40;m &amp; "&lt;BR>"&#41;
	end if
	c = 0
next
end function
%>
برای مثال برای چاپ اعداد اول از 1 تا 1000 از تابع فوق بدین شکل استفاده کنید:
&lt;%
prime&#40;1000&#41;
%>

اگه به مشکلی برخورد کردید بگید چون همین الآن نوشتمش و ممکنه ایراداتی داشته باشه.  :sorry:

روز خوش

----------


## saeedkhan

آقا مسعود کار شما هیچوقت مشکل نداره ... :موفق:

البته اگر میشه میخواستم ببینم آیا میشه سومین عدد یا آخرین عدد رو از این تابع گرفت

----------


## M-Gheibi

> سومین عدد


با یه حلقه + شمارشگر میتونید این کار رو انجام بدید.



> آخرین عدد


اگه فهمیدید آخرین عدد اول چیه من رو هم خبر کنید  :mrgreen:

----------


## 3nitro

نمی خوام تاپیک رو منحرف کنم ولی اولا که آخرین عدد اول رو پیدا کردند که چندماه پیش خبرش در اخبار پخش شد .
ثانیا منظور ایشون احتمالا این بوده که مثلا prime(1000( مثلا 997 آخرین عدد اول هست . البته شاید هم منظورشون این نبوده .   :D

----------


## saeedkhan

> prime(1000( مثلا 997 آخرین عدد اول هست .


درسته !

----------


## M-Gheibi

سلام



> آخرین عدد اول رو پیدا کردند که چندماه پیش خبرش در اخبار پخش شد .


بنده بی خبر بودم.  :) 
من کد بالا رو به صورت زیر اطلاح کردم تا تمام این کارها رو انجام بده:
&lt;% 
Function Prime&#40;Maximum,Number,Reverse&#41;
'Maximum = hade bala
'Number = tedad adade morede nazar
'NumCounter = shomarande baraye tedad adade bargashti
'Remainder = baghimande
'Counter = shomarandeye tedad maghsoumon elayh ha
'V1 va V2 = moteghayerhaye estefade shode dar halgheha

If Maximum &lt; 2 Then
	Response.Write &#40;"No number"&#41;
End If
	NumCounter = 0
Select Case Reverse
	Case -1
		For V1 = Maximum To 2 Step -1
			For V2 = 1 To V1
				Remainder = V1 Mod V2
				If Remainder = 0 Then
					Counter = Counter + 1
				End If
			Next
			If Counter = 2 Then
				Response.Write&#40;V1 &amp; "&lt;BR>"&#41;
				NumCounter = NumCounter + 1
			End If
			Counter = 0
			If NumCounter = Number Then
				Exit Function
			End If
		Next
	Case 1
		For V1 = 2 to Maximum
			For V2 = 1 to V1
				Remainder = V1 mod V2
				If Remainder = 0 Then
					Counter = Counter + 1
				End If
			Next
			If Counter = 2 Then
				Response.Write&#40;V1 &amp; "&lt;BR>"&#41;
				NumCounter = NumCounter + 1
			End If
			Counter = 0
			If NumCounter = Number Then
				Exit Function
			End If
		Next
	End Select
End Function
%>
مثال:
برای اینکه 10 عدد نخست از اعداد اول در بازه 0 تا 500 را بدست آورید ٬ از تابع فوق بدین شکل استفاده کنید:
Prime 500,10,1
برای اینکه 10 عدد آخر از اعداد اول در بازه 0 تا 500 را بدست آورید ٬ از تابع فوق بدین شکل استفاده کنید:
Prime 500,10,-1

مشخص است که برای بدست آوردن آخرین عدد اول در بازه مورد نظر باید از کد زیر استفاده کرد:
Prime xxx,1,-1

امیدوارم مفید بوده باشه  :)

----------


## 3nitro

:strange: 

عالیه ( ! ) ... {مرسی حوصله :موفق:}

----------


## مهدی

این ماجرای 


> آخرین عدد اول رو پیدا کردند که چندماه پیش خبرش در اخبار پخش شد .


 چیه؟ :kaf:

----------


## مهدی

این ماجرای 


> آخرین عدد اول رو پیدا کردند که چندماه پیش خبرش در اخبار پخش شد .


 چیه؟ :kaf:

----------


## saeedkhan

یه دانشمند آلمانی تونست آخرین عدد اول رو توسط یک برنامه که خودش نوشته بود با یه پردازنده ابر رایانه ای با 16 رقم کشف کنه البته بعضی ها معتقدند که باز هم وجود داره (با استناد به اصل نظریه اعداد ترکیبی) من هم دنبال همون ها میگشتم 
در ضمن آقا مسعود واقعا خسته نباشی  :تشویق:

----------


## مهدی

میشه یه لینک در این مورد بدین که دقیقتر بفهمم قضیه چیه!

----------


## saeedkhan

گوگل رو برای همین مواقع گزاشتن  :flower:

----------


## مهدی

اخوی! گشتم پیدا نکردم. حالا شما وقت کردین یه حالی بدین  :موفق:

----------


## 3nitro

الان حضور ذهن ندارم . به آرشیو اخبار صدا و سیما مراجعه کنید .  :موفق:

----------


## ab_ba

ببخشیدا
البته اون آخرین عدد اول نبود (چون تو دنیای بینهایت آخری معنا نمیده) بلکه بزرگترین عدد اولی که انسان اونو پیدا کرده حتی اگر کسی بتونه عدد اولی که از این عدد بزرگتره را پیدا کنه دولت آمریکا جایزه هم میده از این اعداد در رمز گذاری الکترونیکی برای رد وبدل کردن اطلاعات بصورت سری استفاده میشه

----------


## مهدی

میدونم! منم واسه همین کف کردم! فکر کردم ثابت کردند که آخریشه که کفم برید!

----------


## saeedkhan

> فکر کردم ثابت کردند که آخریشه که کفم برید!


شما درست فکر کردید این اثبات شده و تا زمانی که نقض اون اراعه نشه کسی نمیتونه بگه که این بزرگترین عدد اول نیست



> چون تو دنیای بینهایت آخری معنا نمیده


این مسئله هم که شما میگید هم درسته هم غلط :
آلبرت نورن (رباضیدان هلندی) معتقد که اعداد اول جایی باید تموم بشه چون هر چه ما اعداد رو به صورت دنباله بیاوریم در پله های بالا اعدادی وجود دارند که بقیه اعداد رو تحت پوششی قرار میدهند برای مثال
1,2,3,4
2*2=4
العان 4 توسط 2 محاط شده پس 4 اول نیست ...
این بازه را اگر اینقدر بزرگ کنیم که ملیون ها عدد اول رو در خود داشته باشه دانباله اعداد اول (زور نزنید این دنباله کشف نشده) در بازه های پایانی به سمت صفر نزول میکند... 
اگر کافی نبود ببخشید ...  :sorry:

----------


## مهدی

> و تا زمانی که نقض اون اراعه نشه کسی نمیتونه بگه که این بزرگترین عدد اول نیست


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




> این بازه را اگر اینقدر بزرگ کنیم که ملیون ها عدد اول رو در خود داشته باشه دانباله اعداد اول (زور نزنید این دنباله کشف نشده) در بازه های پایانی به سمت صفر نزول میکند...


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

----------


## saeedkhan

> در بینهایت صفر میشه


لازم نیست خود صفر بشود فقط کافی از 1 کوچکتر بشود تا عدد حقیقی دیگری وجود نداشته باشد ...  :flower: 



> وقتی عددی به صفر میل کرد


عدد به سمت صفر میل نمیکند قدر نسبت به سمت صفر میل میکند که همونجور که در بالا توضیح دادم بعد از اون که از یک کوچکتر شد اعداد یک سیکل بسته رو دنبال میکنند  :موفق:

----------


## 3nitro

من که هیچ چیز سر در نیاوردم .  :embr:

----------


## مهدی

> لازم نیست خود صفر بشود فقط کافی از 1 کوچکتر بشود


خوب تا همینجاشم فکر نمیکنم *اثبات* شده باشه.

ضمنا من هنوز دنبال لینک خبر هستم و پیداش نکردم  :(

----------


## saeedkhan

irib.ir archive :flower:

----------

