تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 2 از 2 اولاول 12
نمايش نتايج 11 به 16 از 16

نام تاپيک: به دست آوردن عدد اول

  1. #11
    داره خودمونی میشه behnaam's Avatar
    تاريخ عضويت
    Aug 2006
    پست ها
    161

    پيش فرض

    اینو بگیر یه فرم می خواد و یه دکمه با یه تکست باکس . اسم تکست باکسو عوض نکن بعد تو روال کلیک دکمه ات اینو تایپ کن
    Dim N, X, i, primnum As Decimal
    Dim ISprime As Boolean

    N = TextBox1.Text
    X = sqrt(N)
    ISprime = True
    If N = 2 Then
    MsgBox("خره! مسخره کردی؟ معلومه که اوله", MsgBoxStyle.OKOnly, "چهههههه؟")

    Exit Sub
    End If
    If (N Mod 2) = 0 Then 'اعداد زوج هیچگاه اول نیستند بجز 2
    ISprime = False
    MsgBox("خیر این عدد اول نیست")
    Exit Sub
    End If

    If ISprime = True Then
    For i = 2 To X
    If (N Mod i) = 0 Then
    ISprime = False
    Exit For
    End If
    Next (i)
    If ISprime = True Then
    MsgBox("بله این عدد اول است")
    Else
    MsgBox("خیر این عدد اول نیست")

    End If
    End If
    بعد از اجرا...عددت رو تو تکست باکس مینویسی و دکمه رو می زنی اگه عددت خیلی بزرگ باشه طول میکشه.
    Last edited by behnaam; 21-08-2006 at 02:33.

  2. #12
    داره خودمونی میشه behnaam's Avatar
    تاريخ عضويت
    Aug 2006
    پست ها
    161

    پيش فرض

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

  3. #13
    اگه نباشه جاش خالی می مونه A_M_IT2005's Avatar
    تاريخ عضويت
    Oct 2005
    محل سكونت
    بین جهنم و بهشت
    پست ها
    331

    پيش فرض

    سلام به همگی
    خسته نباشید
    فکر کنم این الگوریتم بهتر و درست تر باشه.
    اگه عدد اول نباشه هم می گه اول نیست و هم اولین عددی رو که به اون بخشپذیر معلوم میکنه.

    Private Sub Command1_Click()
    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"
    End Sub

    موفق باشید
    Last edited by A_M_IT2005; 21-08-2006 at 03:00.

  4. #14
    داره خودمونی میشه behnaam's Avatar
    تاريخ عضويت
    Aug 2006
    پست ها
    161

    پيش فرض

    به نظرم الگوریتم من بهتر باشه چون تو الگوریتم شما در هر دور حلقه باید c^2 حساب بشه
    حالا یه سئوال:موقعی که برنامه در حال محاسبات سنگینی مثل پیدا کردن اعداد اول 1 تا 1000000 هست. فرم برنامه ام قفل میشه و با فشار دکمه stop روال مربوط به اون که می بایست محاسبات رو نیمه کاره پایان بده اجرا نمیشه تازمانی که محاسبات خودشون تموم بشن! راه حلی نیست که (حلقه ها) انقدر مخ cpuرو کار نگیرن؟یا بشه به هر فرمان یک مقدار مشخصی از زمان پردازنده رو داد؟

  5. #15
    حـــــرفـه ای *Batman*'s Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    Virtual Environment
    پست ها
    5,203

    پيش فرض

    نقل قول نوشته شده توسط Payman_62
    سلام.
    T>2 تو شرط if باید به T>1 تغییر کنه تا درست کار کنه. چون تا نصف عدد تقسیم میکنه و به خود عدد نمیرسه. پس اگه بعد از 1 به یه عدد دیگه بخش پذیر باشه اول نیست. این جوری 9 رو میگه اوله.
    سلام.

    اگه بگيم T>=2 چطوره؟

  6. #16
    مدیر انجمن برنامه نویسی Payman_62's Avatar
    تاريخ عضويت
    Dec 2005
    محل سكونت
    تهران
    پست ها
    2,445

    پيش فرض

    نقل قول نوشته شده توسط behnaam
    به نظرم الگوریتم من بهتر باشه چون تو الگوریتم شما در هر دور حلقه باید c^2 حساب بشه
    حالا یه سئوال:موقعی که برنامه در حال محاسبات سنگینی مثل پیدا کردن اعداد اول 1 تا 1000000 هست. فرم برنامه ام قفل میشه و با فشار دکمه stop روال مربوط به اون که می بایست محاسبات رو نیمه کاره پایان بده اجرا نمیشه تازمانی که محاسبات خودشون تموم بشن! راه حلی نیست که (حلقه ها) انقدر مخ cpuرو کار نگیرن؟یا بشه به هر فرمان یک مقدار مشخصی از زمان پردازنده رو داد؟
    سلام.
    در حلقه یه Doevents بذار.

    نقل قول نوشته شده توسط Batman1
    سلام.

    اگه بگيم T>=2 چطوره؟
    T>=2 با T>1 برای اعداد صحیح فرق نمیکنه.
    البته میدونم که میدونی.

صفحه 2 از 2 اولاول 12

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •