Cpp-04-06 - اعداد اول کدومان؟ خط به خط بهم توضیح بده

بازدید : 61

0

اشتراک

Cpp-04-06 - اعداد اول کدومان؟ خط به خط بهم توضیح بده

توضیحات :

🔹 برنامه تشخیص عدد اول در C++

1️⃣ تعریف عدد اول

  • عددی اول است اگر فقط بر یک و خودِ خودش بخش‌پذیر باشد.

  • یعنی تعداد بخش‌پذیری‌ها = 2 → اول

  • تعداد بخش‌پذیری‌ها > 2 → اول نیست


2️⃣ پیاده‌سازی در C++

#include <iostream> using namespace std; int main() { int n; // عددی که کاربر وارد می‌کند int counter = 0; // شمارنده تعداد بخش‌پذیری‌ها // گرفتن ورودی cout << "Enter a number: "; cin >> n; // حلقه برای بررسی بخش‌پذیری for (int i = 1; i <= n; i++) { if (n % i == 0) { counter++; // هر بار که بخش‌پذیر بود، شمارنده افزایش پیدا می‌کند } } // بررسی تعداد بخش‌پذیری‌ها if (counter == 2) cout << n << " is a prime number." << endl; else cout << n << " is not a prime number." << endl; return 0; }

3️⃣ توضیح کد

  1. متغیر n عدد وارد شده توسط کاربر است

  2. متغیر counter برای شمارش تعداد تقسیم‌های بدون باقی‌مانده است

  3. حلقه for از 1 تا n اجرا می‌شود

    • در هر مرحله چک می‌کنیم n % i == 0

    • اگر درست بود، counter++

  4. بعد از حلقه، اگر counter == 2 بود → عدد اول، در غیر این صورت → عدد اول نیست


4️⃣ مثال اجرا

Enter a number: 5 5 is a prime number. Enter a number: 4 4 is not a prime number.

5️⃣ نکات و بهینه‌سازی

  • می‌توانیم حلقه را تا i <= sqrt(n) بچرخانیم تا سرعت بررسی عددهای بزرگ بسیار افزایش پیدا کند، چون بخش‌پذیری‌ها بعد از ریشه دوم تکراری می‌شوند.

  • از do…while هم می‌توان استفاده کرد اگر بخواهیم حداقل یک بار حلقه اجرا شود (مثلاً برای دریافت مجدد ورودی در برنامه تعاملی).

لطفا برای گذاشتن نظرات خود وارد شوید

نظرات شما عزیزان