كد زير برنامه اي هست كه يك عدد از كاربر مي گيره و بعدش معلوم مي كنه كه اين عدد اول هست يا نه مي خواستم بدونم آيا برنامه مشكلي داره يا نه فقط شما بگيد مشكلش چي هست حلش با خودم.
ممنون ميشم.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
كد زير برنامه اي هست كه يك عدد از كاربر مي گيره و بعدش معلوم مي كنه كه اين عدد اول هست يا نه مي خواستم بدونم آيا برنامه مشكلي داره يا نه فقط شما بگيد مشكلش چي هست حلش با خودم.
ممنون ميشم.
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
از این کد استفاده کنی درست کار میکنه:نوشته شده توسط mahdi7s [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
به نظر درست می آد. ولی
1- چرا
رو توی تابع نگذاشتی تا اون جا چک کنه و دیگه لاز م نباشه بیرون از تابع این تست رو انجام بدی. به عبارتی باید یک وظیف رو به طور کامل به یک تابع بسپاری تا اون تابع به صورت ماژولی جدا از برنامه باشد که فقط ورودی می گیرد و خروجی می دهد.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
2- این درست است:
ولی چک کردن تا رادیگال num کافی است. یعنی کد زیر:کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته باید از کوچکتر مساوی حتما استفاده شود و نه کوچکتر خالی.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
همچنین با بررسی عدد دو دیگر نیازی به بررسی اعداد زوج نیست.
زیرا مثلاً اگر عددی بر 2 بخش پذیر نباشد، حتماً بر 4 هم بخش پذیر نیست و اگر بر دو و سه بخش پذیر نباشد، بر 6 هم حتماً بخش پذیر نیست.
پس می توانی این تغیر را هم به برنامه بدهی:
پس می بینید که به جای num-2 عدد، فقط بر sqrt(num)/2 عدد باقیمانده گیری کردیم که سرعت را خیلی افزایش می دهد.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این ها هم جزء مباحث نظریه اعداد است!
مباحث پیشرفته تری در تشخیص و تولید اعداد فرد بسیار بزرگ (برای کاربردهای رمزنگاری) در مباحث نظریه اعداد موجود است. مثلاً قضیه فرما (Fermat) و ...
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)