انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: جمع اول ها  (دفعات بازدید: 2443 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین zahra_sh

  • Newbie
  • *
  • ارسال: 2
  • جنسیت : دختر
جمع اول ها
« : 06 اسفند 1393، 01:36 ق‌ظ »
سلام میشه بگین این کد رو چجوری بنویسم؟من از ورژن 2.7.5 پایتون استفاده می کنم ممنون میشم اگه زودتر جواب بدید
برنامه ای بنویسید که یک عدد از ورودی بگیرد وتشخیص دهد که آیا می توان آن را به صورت مجموع دو عدد اول نوشت یا نه.در این صورت تمام این حالات رابه ترتیب صعودی اولین عدد چاپ کند و در صورتی که جوابی پیدا نکرد عبارت not found را چاپ کند
مثلا اگر ورودی عدد 34 بود خروجی به صورت زیر باشد:
31+3
29+5
23+11
17+17

آفلاین Ghost Shadow

  • High Hero Member
  • *
  • ارسال: 1803
  • جنسیت : پسر
  • Linux is Secured By Design
پاسخ : جمع اول ها
« پاسخ #1 : 06 اسفند 1393، 01:49 ق‌ظ »
الان خود مسئله رو حل کردید که باید چه کار کنید؟
تا کجا پیش رفتید و به چه مشکلی برخورد کردید؟

آفلاین Ma3X

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 877
  • جنسیت : پسر
  • It is Matrix
    • ماتریکس. آی آر
پاسخ : جمع اول ها
« پاسخ #2 : 06 اسفند 1393، 08:42 ق‌ظ »
انجمن‌های پشتیبانی، برای حل مشکلات به‌وجود اومدن، نه انجام تکالیف.
اگر می‌خوای جواب بگیری، باید ابتدا سعی کنی که خودت مساله رو بفهمی، یک جواب براش پیدا کنی، راه‌حلی که به ذهنت رسید رو اجرا کنی و اگر حل نشد، توی این‌جا میگی که سوال چیه، کارهایی که تا الان برای حل کردنش انجام دادی به‌تفصیل چی بودن و فکر می‌کنی کجای کار مشکل داره.
اون موقع دوستانی که علاقه دارن، جوابت رو در کمترین زمان می‌دن. من اگه احساس کنم هیچ تلاشی برای حل مساله نکردی، تنها کاری که می‌کنم این که این Tab رو توی مرورگرم می‌بندم.

آفلاین zahra_sh

  • Newbie
  • *
  • ارسال: 2
  • جنسیت : دختر
پاسخ : جمع اول ها
« پاسخ #3 : 07 اسفند 1393، 01:05 ق‌ظ »
کد رو نوشتم ولی مشکل اینجاست که وقتی بهش عدد میدم(مثلا همون 34) خروجی این میشه
31 + 3
29 + 5
27 + 7
23 + 11
21 + 13
17 + 17
19 + 15
سومی پنجمی و آخری غلطن نمی دونم مشکل کجاست کدم اینه
m = int(raw_input())

n = 2
while n <= m:
    i = 2
    no_printed = 0
    while i < n:
        if n % i == 0:
            no_printed = 1
            break
        i = i + 1
    if no_printed == 0:
        y=m-n
        if y%i!=0 and y>n:
            print y,"+",n
        if y%i!=0 and n>y:
           print n,"+",y
           break
    if n==y:
        print y,"+",n
    n = n + 1
« آخرین ویرایش: 07 اسفند 1393، 02:12 ق‌ظ توسط nixoeen »

آفلاین Ghost Shadow

  • High Hero Member
  • *
  • ارسال: 1803
  • جنسیت : پسر
  • Linux is Secured By Design
پاسخ : جمع اول ها
« پاسخ #4 : 07 اسفند 1393، 01:15 ق‌ظ »
لطفا کد ها رو تو تگ کد بذارید :)

آفلاین nixoeen

  • ناظر انجمن
  • *
  • ارسال: 4872
  • جنسیت : پسر
  • masoft قدیم
پاسخ : جمع اول ها
« پاسخ #5 : 07 اسفند 1393، 02:16 ق‌ظ »
باید چک بکنی که هر دو عدد اول باشند، در حالی فقط یکی از عددها رو چک می‌کنی.

آفلاین محمد فدوی

  • Sr. Member
  • *
  • ارسال: 485
  • جنسیت : پسر
  • آغاز آزادی از رایانهٔ شخصی
    • آغاز آزادی از رایانهٔ شخصی
پاسخ : جمع اول ها
« پاسخ #6 : 07 اسفند 1393، 03:27 ق‌ظ »
یه پیشنهاد:
اول یه برنامه بنویس که یه لیست نسبتا بزرگ از اعداد اول تولید کنه و توی یه دیتابیس (یا مثلا یه فایل متن) ذخیره کنه. مثلا برای اینکار میتونی از پیاده سازی غربال اراتستن استفاده کنی. خوشبختانه توی پایتون حتی مثال هم در این مورد زیاد هست. مثلا این رو ببین. یا حتی میتونی از لیست‌های آماده‌ی اعداد اول مثل این استفاده کنی.

حالا که لیست اعداد اول رو - به یکی از روش‌های فوق - داری می‌تونی خیلی ساده این تشخیص رو انجام بدی. و البته در مورد اعداد زوج می‌تونی مطمئن باشی که همیشه حداقل دو عدد اول پیدا خواهی کرد (حدس گلدباخ)
اگر به بهداشت و فرهنگ رفتار با حیوانات علاقه دارید، از vetMD.ir دیدن کنید.
وبلاگ شخصی من: http://fadavi.net

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19725
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : جمع اول ها
« پاسخ #7 : 07 اسفند 1393، 07:22 ق‌ظ »
یه تابع isprime بنویس که اول بودن یا نبودن ورودی رو تشخیص بده. بعد شروع کن اعدادفرد کوچک‌تر از اون عدد داده شده رو به ترتیب بررسی کن که اول هست یا نه، اگه بود، عدد داده شده رو منهای عدد اولی که داریم بکن و دوباره در تایع isprime بررسی کن که این هم اول هست یا نه. اگه این هم بود، زوج مرتّب حاصله یکی از جواب‌های مسأله‌است
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن