برنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟
Printable View
برنامه اي كه يك عدد را دريافت و تشخيص دهد اول هست يا نه ؟
آره هست....
حالا تمريناتتو جدا جدا ميزاري! تو فردا قراره مهندس بشي.نبايد بتوني يه همچين برنامه اي رو بنويسي؟
سلام
من یک راه نمایی کوچیک میکنم
باید برنامه بیاد عدد رو به 2 3 5 7 11 تفسیم کنه
اگر باقی مانده 0 نشد و حارج قسمت کوچیک تر از عدد مورد نظر بود عدد اول است
سلام به همگی
خوب اول برنامه رو توضیح میدم بعد کد رو میذارم:
عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 7.
حالا برای اینکه برنامشو بنویسیم به ویژوال بیسیک میگیم که عددی رو که از ما گرفتی چک کن.
عدد رو تقسیم کن بر خود عدد ، بعد تقسیم کن بر یک ، بعد تقسیم کن بر دو
اگر باقیمانده دو تقسیم اول صفر و باقیمانده تقسیم بر دو بزرگتر از صفر شد عدد اول است.
اینم کد برنامه:
a = Val(Text1.Text)
If (a Mod a = 0) And (a Mod 1 = 0) And (a Mod 2 <> 0) Then
Text1.Text = a & "First"
Else
Text1.Text = a & "No"
End If
--------------------------------
یک textbox و یک command میذاریم و توی command کد بالا رو مینویسیم
اگه توضیحی برای کد خواستی من در خدمتم.
------------------------------------------------------
اللهم عجل لولیک الفرج
اين برنامه معلوم نميكنه كه عدد اول هست يا نه.مثلا عدد 27 رو در نظر بگيرين خودتون متوجه ميشين كه اول نيستنقل قول:
سلام به همگی
خوب اول برنامه رو توضیح میدم بعد کد رو میذارم:
عدد اول یعنی عددی که فقط بر خود و یک بخشپذیر باشه مثل عدد 7.
حالا برای اینکه برنامشو بنویسیم به ویژوال بیسیک میگیم که عددی رو که از ما گرفتی چک کن.
عدد رو تقسیم کن بر خود عدد ، بعد تقسیم کن بر یک ، بعد تقسیم کن بر دو
اگر باقیمانده دو تقسیم اول صفر و باقیمانده تقسیم بر دو بزرگتر از صفر شد عدد اول است.
اینم کد برنامه:
a = Val(Text1.Text)
If (a Mod a = 0) And (a Mod 1 = 0) And (a Mod 2 <> 0) Then
Text1.Text = a & "First"
Else
Text1.Text = a & "No"
End If
براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم.
و اما اينم برنامه شما :
کد:uses crt;
var n,i,c:integer;
begin
clrscr;
write('please enter number: ');
readln(n);
for i:=1 to n do
if n mod i=0 then inc(c);
if c>2 then writeln('aval nist') else writeln('aval hast');
readkey;
end.
آقا این کد اشتباهه!! عدد 2 یک عدد اول هست ولی برنامه میگه که اول نیست.حالا این اشتباه رو میشه به راحتی درست کرد ولی در مورد اعداد 33,55,77,99,… چیکار میشه کرد؟ این اعداد همگی بخشپذیر هستند و اول نیستند، در صورتی که برنامه میگه اعداد اول هستند.
حالا من یه راهنمایی می کنم.برای اینکه بتونی کد این برنامه رو بنویسی باید:
1.عدد ورودی رو بر 2 تقسیم کنی = a (تقسیم صحیح)
2.باقیمانده تقسیم عدد وارد شده را بر تمام اعداد صحیح بین بازه [2,a] بدست بیاری.
3.اگر تمام باقیمانده ها مخالف صفر بود،عدد وارد شده اول است.
4.در غیر این صورت عدد وارد شده اول نیست.
حالا این 4 خط رو به کد وی بی تبدیل کن تا نمره بگیری. :happy:
shamsoft عزيز منظور شما با A_M_IT2005 بود؟
چون سورسي كه من گذاشتم درست جواب ميده . ميگي نه امتحان كن.
اين نكته شما رو هم توي پست بالام گذاشته بودم و فقط توي سورسم ننوشتم:نقل قول:
حالا من یه راهنمایی می کنم.برای اینکه بتونی کد این برنامه رو بنویسی باید:
1.عدد ورودی رو بر 2 تقسیم کنی = a (تقسیم صحیح)
2.باقیمانده تقسیم عدد وارد شده را بر تمام اعداد صحیح بین بازه [2,a] بدست بیاری.
3.اگر تمام باقیمانده ها مخالف صفر بود،عدد وارد شده اول است.
4.در غیر این صورت عدد وارد شده اول نیست.
نقل قول:
براي تشخيص بايد اون عدد رو از يك تا خود عدد ( البته براي بالا بردن سرعت ميشه تا نصف عدد ) تقسيم و باقيمانده ها رو چك كنيم.
کد A_m_it2005 که اشتباست. ولی ماله رضا درسته.
یه تعریف دیگه از عدد اول که سرعت برنامه رو خیلی میبره بالا. عدد اول عددی هست که به اعداد اول کوچکتر از خودش بخش پذیر نباشه. در این روش عدد 2 رو به عنوان اولین عدد اول میزاریم تو یه آرایه. بعد اعداد بعدی رو به اعداد آرایه تقسیم میکنیم. اگر باقی مانده غیر صفر بود میذاریمشون تو خونه آخر آرایه.
سلام
برای عجله ای که در نوشتن برنامه کردم و کاملا اشتباه بود از همه معذرت میخوام :sad: :blush: :eh:
برنامه به همون شکلی که Reza_s نوشته درسته که فکر کنم با دلفی هست.
من برنامه رو با ویژوال بیسیسک نوشتم که هیچ اشکالی نداره :
-----------------------------------------
Dim a As Double, c As Double
a = Val(Text1.Text)
c = 2
Do While c * c <= a
If a Mod c = 0 Then
Print "aval nist" + vbCr + "be " + CStr(c) + " bakhshpazir ast."
Exit Do
End If
c = c + 1
Loop
If c * c > a Then Print "aval hast"
--------------------------------------------
اللهم عجل لولیک الفرج
دوستان از لینک زیر می توانند الگوریتم برنامه و فلوچارت مربوط به اعداد اول را دریافت کنند.:5:
لینک برنامه:
کد:http://karrari.persiangig.com/Adad%20Aval.rar
سلام
خوب من در حال گذروندن دوره ویژوال بیسیک هستم.
کدهایی رو که تو این قسمت خیلی وقت پیشها ارائه شده رو مطالعه کردم. توی یه تعدادشون از کدهایی استفاده شده که اصلا تو ویژوال بیسیک متداول نیست. و آخرین پست فقط اجرا رو داده بدون کد!
خوب ممنون میشم یکی یه راهنمایی درست بکنه.
با تشکر فریبا
اینم کد برنامه اعداد اول :
Private Sub Command1_Click()
a = InputBox("")
For i = 2 To a - 1
If a Mod i = 0 Then k = k + 1
Next i
If k = 0 Then MsgBox "yes" Else MsgBox "no"
End Sub
فکر نمیکنم توضیح خاصی بخواد اگه این عدد بر اعداد 2 تا یکی کمتر از خود اون عدد بخش پذیر نبود اونوقت میگه yes
نقل قول:
آقای حامد خان این چه برنامه ایه ؟
شما به برنامه ات 9 و 15 و ... رو بده میگه اوله:18::18::18:
کد:dim f,i,x as Intigerx=inputbox("Enter Number")For i=1 to xif x mod i =0 then F=f+1next iif f>2 then Print "Aval Ast"
چرا نوشته هام اینتر ندارن ؟؟؟من اینتر گذاشتم اما نیوفتاده .حالا اشکال نداره اون یه ایراد کوچول هم داشت اینو ببینید :
------------------------------------------------------کد:Private Sub Command1_Click()Dim f, i, x As Integerx = InputBox("Enter Number")For i = 1 To xIf x Mod i = 0 Then f = f + 1Next iIf f > 2 Then Print "Aval Nist"End Sub
لطفا کدهاتون رو داخل تگ کد قرار بدید.
Payman_62
سلام
تو کدی که دادین ارقام بیشتر از 9 رقم رو قبول نمیکنه.
اگه میشه دوباره راهنمایی کنین.
سلام
من کد C#رو میذارم که زیاد فرقی نمیکنه با کمی تغییر میتونید ازش استفاده کنید
کد:static void Main(string[] args)
{
int num;
num = Int32.Parse(Console.ReadLine());
int counter=0;
for(int i=1;i<=1000;i++){
if (num % i == 0) {
counter++;
}
}
if (counter > 2)
{
Console.WriteLine("aval nist");
}
else {
Console.WriteLine("aval ");
}
Console.ReadKey();
}
سلام به همه دوستان من مراحل نوشتن برنامه عدد اول رو می خواستم لطفا راهنمایی کنید
بیا باهم مفهوم عدد اول را مرور کنیم:نقل قول:
عددی طبیعی ا ست که فقط بر یک و خودش بخش پذیر است خوب با توجه به این تعریف خودت برای اینکه متوجه بشی یک عدد اول است یا نه چه کار می کنی؟
سلام این رو هم امتحان کن
کد:("")a=inputbox
for i = 1 to a
if a mod i = 0 then s=s+1
next i
if s=2 then
print "Aval ast"
else
Print "Aval nist"
end if
Private Sub Command1_Click() Dim n, i, t As Integerنقل قول:
t = 0
n = text1.Text
For i = 1 To n
If n Mod i = 0 Then
t = t + 1
End If
Next i
If t = 2 Then
Print "aval ast"
Else
Print "aval niast"
End Sub
به یک دکمه و یک تکست باکس و لیبل برای خوانایی برنامه استفاده میکنیم استفاده از لیبل اختیاری است
برنامه تون خوبه فقط چندتا نکته برای اجرای سریعترنقل قول:
لازم نیست از یک تا خود عدد رو تقسیم کنیم اگه عددی اول نباشه حتما یه مقسوم علیه داره که کوچکتر یا مساوی مجذور خودشه (چون شاید نخوایم از توابع ریاضی و مجذور استفاده کنیم از نصف عدد میتونیم استفاده کنیم) کد اصلاح شده به شکل زیر
کد:t=0
n =val( text1.Text)
For i = 2 To n/2
If n Mod i = 0 Then
t = t + 1
End If
Next i
If t = 1 Then
Print "aval ast"
Else
Print "aval niast
سلام دوستان من برنامه زیر رو کسی بلده
برنامه ای که یک عدد را دریافت و مشخص کند اول است با نه با تابع بازگشتی؟ (به زبان جاوا)
سلام این برنامه رو واسه سی شارپ دارید؟ اگه هست به منم بگید
کد سوال جمع بزرگان رو میشه بفرستین
البته اگه کسی داره:n35: