نمایش نتایج 1 تا 13 از 13

نام تاپیک: تجزیه ی یک عدد به اعداد اول

  1. #1

    تجزیه ی یک عدد به اعداد اول

    سلام دوستان

    یه سوال دیدم برام جالب بود که حلش کنم، برنامه رو نوشتم که میتونید از لینک زیر دانلود کنید .
    کاره برنامه اینه که عدد ورودی رو به اعداد اول تجزیه میکنه .


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

    ممنون میشم اگه دوستان توی حل دوتا مشکل بالا کمکم کنن

  2. #2
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: تجزیه ی یک عدد به اعداد اول

    Private Sub Command1_Click()
    Text1.Text = ""
    Dim i, j, s, a, f As Double
    a = Fix(Text2.Text)
    If a > 1 Then
    For i = 1 To a
    s = 0
    For j = 1 To i
    If i Mod j = 0 Then
    s = s + 1
    End If
    Next j
    If s = 2 Then
    f = 0
    While ((a / i) = Int(a / i))
    a = (a / i)
    f = f + 1
    Wend
    If f <> 0 Then
    Text1.Text = Text1.Text + Str(i) + "^" + Str(f) + Space(1) + "*" + Space(1)
    End If
    End If
    Next i
    Text1=Left(Text1,Len(Text1)-2)
    Else
    Text1=a
    End If
    End Sub


  3. #3
    کاربر دائمی آواتار a_mohammadi_m
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    زنجان
    پست
    230

    نقل قول: تجزیه ی یک عدد به اعداد اول

    در مورد مشكل اول :
    قبل از اينكه يك عدد رو تجزيه كني كنترل كن كه خودش عدد اول نباشه ، اگه عدد اوله با يك پيغام به كاربر اطلاع بده و برنامه رو تموم كن
    خود عدد 1 هم در همين چك كردن جزو اعداد اول محسوب ميشه يعني مي توني در اولين if اگر عدد گرفته شده 1 بود برنامه تموم كني

    در ضمن مثل اينكه مثال بيان شده در پست شماره 2 كلا اشكال داشته باشه
    در اين مثال همين كه يك عددي 2 تا مقسوم عليه داشت شروع به كارهاي ديگه اي مي كنه و بقيه اعداد رو چك نميكنه

  4. #4
    کاربر دائمی آواتار mahdi1373
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    Shahid Beheshti Developer Center
    پست
    278

    نقل قول: تجزیه ی یک عدد به اعداد اول

    سلام،
    من یه برنامه نوشتم که تجزیه هم می کنه، اینم سورسش:
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: تجزیه ی یک عدد به اعداد اول

    نقل قول نوشته شده توسط a_mohammadi_m مشاهده تاپیک
    در مورد مشكل اول :
    مثل اينكه مثال بيان شده در پست شماره 2 كلا اشكال داشته باشه
    در اين مثال همين كه يك عددي 2 تا مقسوم عليه داشت شروع به كارهاي ديگه اي مي كنه و بقيه اعداد رو چك نميكنه
    سلام
    شاید حق با شما باشه
    من وقتی اون کد رو گذاشتم فرض کردم که کدی که دوستمون گذشته درسته و فقط همون دو تا مشکل رو داره رو همین حساب تو notepad بازش کردم دو تا تغییر دادم توش و گذاشتمش اینجا
    اگه مشکلی بوده تو کد اصلی بوده

  6. #6

    نقل قول: تجزیه ی یک عدد به اعداد اول

    نقل قول نوشته شده توسط a_mohammadi_m مشاهده تاپیک
    در مورد مشكل اول :
    قبل از اينكه يك عدد رو تجزيه كني كنترل كن كه خودش عدد اول نباشه ، اگه عدد اوله با يك پيغام به كاربر اطلاع بده و برنامه رو تموم كن
    خود عدد 1 هم در همين چك كردن جزو اعداد اول محسوب ميشه يعني مي توني در اولين if اگر عدد گرفته شده 1 بود برنامه تموم كني

    در ضمن مثل اينكه مثال بيان شده در پست شماره 2 كلا اشكال داشته باشه
    در اين مثال همين كه يك عددي 2 تا مقسوم عليه داشت شروع به كارهاي ديگه اي مي كنه و بقيه اعداد رو چك نميكنه
    ممنون از راهنماییتون دوست عزیز، اما عدد 1 اول نیست، بنابراین نباید به اعداد اول تجزیه بشه پس برنامه رو صحیح نوشته بودم، اما دلیل اینکه اون سوال رو پرسیده بودم این بودش که حین تست برنامه بیشتر روی تجزیه عدد تمرکز کرده بودم و نه اینکه تجزیه اون به عوامل اول که میشد خیلی راحت مسئله رو حل کرد،پس سوالم اشتباه بوده، بازم ممنون :)
    در ضمن مثل اينكه مثال بيان شده در پست شماره 2 كلا اشكال داشته باشه
    در اين مثال همين كه يك عددي 2 تا مقسوم عليه داشت شروع به كارهاي ديگه اي مي كنه و بقيه اعداد رو چك نميكنه
    اگه مشکلی بوده تو کد اصلی بوده
    نه دوست عزیز مشکلی تو کد اصلی نبود، تغییر اساسی که شما تو برنامه داده بودید این کد بود :

    Else
    Text1=a
    جای نامناسبش باعث میشه شرط اولیه رو دیگه رعایت نکنه . اما خیلی ممنون بابت حذف علامت اضافه :)

    فکر کنم دوستان برنامه رو مطالعه نکرده بودند، به این روش عمل کردم

    1- عدد رو از کاربر میگیرم
    2- عوامل اول رو تا اون عدد استخراج میکنم
    3- بخش پذیری عدد رو نسبت به اعداد اول بدست اومده تا خوده اون عدد رو بررسی میکنم،
    4- بعد از پیدا کردن اعداد اول دارای شرایط بالا، عدد رو تا وقتی که خارج قسمت تقسیم عدد به اعداد اول مرحله ی قبل ، صحیح باشه به عوامل اولش تجزیه میکنم
    5- عوامل اولی که شامل حلقه بودن رو وارد خروجی میکنم به اضافه تعداد دفعاتی که عدد بر اون ها قابل تقسیم بوده ( به عنوان توان )


    اینم کد نهایی بعد از اصلاح، تنها تغییرش حذف علامت توان اضافه بعد از رقم آخر هستش ( ممنون از دوست عزیز بابت کد )

    text1 عدد رو از میگیره، text2 خروجی رو نشون میده و command1 هم عملیات رو .

    Private Sub Command1_Click()
    Text2.Text = ""
    Dim i, j, s, a, f As Integer
    If Text1.Text > 1 And Text1.Text <> "" Then
    a = Fix(Text1.Text)
    For i = 1 To a
    s = 0
    For j = 1 To i
    If i Mod j = 0 Then
    s = s + 1
    End If
    Next j
    If s = 2 Then
    f = 0
    While ((a / i) = Int(a / i))
    a = (a / i)
    f = f + 1
    Wend
    If f <> 0 Then
    Text2.Text = Text2.Text + Str(i) + "^" + Str(f) + Space(1) + "*" + Space(1)
    End If
    End If
    Next i
    Text2.Text = Left(Text2.Text, Len(Text2.Text) - 2)
    End If
    End Sub
    که الگوریتم کلی همینه :

     For i = 1 To a
    s = 0
    For j = 1 To i
    If i Mod j = 0 Then
    s = s + 1
    End If
    Next j
    If s = 2 Then
    f = 0
    While ((a / i) = Int(a / i))
    a = (a / i)
    f = f + 1
    Wend
    If f <> 0 Then Print i & "^" & f
    End If
    Next i
    و ممنون از جناب mahdi1373 بابت معرفی برنامشون :) روشی که استفاده کردید باعث شده برنامه شما خیلی سریعتر عمل کنه
    آخرین ویرایش به وسیله ahmads : سه شنبه 01 تیر 1389 در 13:21 عصر

  7. #7
    کاربر دائمی آواتار m.4.r.m
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    تبریز
    پست
    1,407

    نقل قول: تجزیه ی یک عدد به اعداد اول

    تاریخ پست ها رو نگاه کن دوست عزیز

  8. #8

    نقل قول: تجزیه ی یک عدد به اعداد اول

    slmmishe code in barname ro bezarin inja? ?mamnOon

  9. #9

    نقل قول: تجزیه ی یک عدد به اعداد اول

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

  10. #10
    کاربر دائمی
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    اصفهان
    پست
    717

    نقل قول: تجزیه ی یک عدد به اعداد اول

    نقل قول نوشته شده توسط زیبااا مشاهده تاپیک
    سلام امکانش هست این کدو به زبان جاوا اسکریپت بنویسید ممنون میشم
    اگر بخواهید میتوانم برایتان بنویسم فقط پیام خصوصی بدهید تا سریع برایتان ارسال کنم

  11. #11

    نقل قول: تجزیه ی یک عدد به اعداد اول

    سلام
    وقت بخیر
    امکان داره کد در قالب smallbasic نوشته بشه

  12. #12
    کاربر جدید
    تاریخ عضویت
    اسفند 1398
    محل زندگی
    توی الکترون مغز ها
    پست
    2

    Question نقل قول: تجزیه ی یک عدد به اعداد اول

    سلام
    لینکایی که دادید دانلود نمیشن
    چیکار کنم
    عجله دارم

  13. #13
    کاربر جدید
    تاریخ عضویت
    اسفند 1398
    محل زندگی
    توی الکترون مغز ها
    پست
    2

    نقل قول: تجزیه ی یک عدد به اعداد اول

    منم میخوام برای منم بفرستین
    نقل قول نوشته شده توسط www.pc3enter.tk مشاهده تاپیک
    اگر بخواهید میتوانم برایتان بنویسم فقط پیام خصوصی بدهید تا سریع برایتان ارسال کنم

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •