Πρόγραμμα C ++ για να ελέγξετε αν ένας αριθμός είναι Prime ή όχι

Παράδειγμα για να ελέγξετε εάν ένας ακέραιος αριθμός (που έχει εισαχθεί από τον χρήστη) είναι ένας πρωταρχικός αριθμός ή όχι για βρόχο και αν… αλλιώς δήλωση.

Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες θεματολογίες προγραμματισμού C ++:

  • C ++ εάν, εάν… αλλιώς και Ένθετο εάν… αλλιώς
  • C ++ για βρόχο
  • C ++ διακοπή και συνέχεια της δήλωσης

Ένας θετικός ακέραιος που διαιρείται μόνο με το 1 και ο ίδιος είναι γνωστός ως πρωταρχικός αριθμός.

Για παράδειγμα: το 13 είναι ένας πρωταρχικός αριθμός επειδή διαιρείται μόνο με τα 1 και 13 αλλά, το 15 δεν είναι πρωταρχικός αριθμός επειδή μπορεί να διαιρεθεί από τα 1, 3, 5 και 15.

Σημείωση: 0 και 1 δεν είναι πρωταρχικοί αριθμοί.

Παράδειγμα: Ελέγξτε τον πρωταρχικό αριθμό

 #include using namespace std; int main() ( int i, n; bool isPrime = true; cout <> n; // 0 and 1 are not prime numbers if (n == 0 || n == 1) ( isPrime = false; ) else ( for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) ) if (isPrime) cout << n << " is a prime number"; else cout << n << " is not a prime number"; return 0; ) 

Παραγωγή

 Εισαγάγετε έναν θετικό ακέραιο: 29 29 είναι ένας πρώτος αριθμός.

Αυτό το πρόγραμμα παίρνει έναν θετικό ακέραιο από τον χρήστη και το αποθηκεύει στη μεταβλητή n.

Παρατηρήστε ότι η boolean μεταβλητή isPrime αρχικοποιείται trueστην αρχή του προγράμματος.

Δεδομένου ότι τα 0 και 1 δεν είναι πρωταρχικοί αριθμοί, ελέγχουμε πρώτα εάν ο αριθμός εισαγωγής είναι ένας από αυτούς τους αριθμούς ή όχι. Εάν ο αριθμός εισαγωγής είναι 0 ή 1 , τότε η τιμή του isPrime ορίζεται σε false.

Διαφορετικά, η αρχική τιμή του isPrime παραμένει αμετάβλητη και forεκτελείται ο βρόχος, ο οποίος ελέγχει εάν ο αριθμός που έχει εισαχθεί από τον χρήστη διαιρείται τέλεια από το i ή όχι.

 for (i = 2; i <= n / 2; ++i) ( if (n % i == 0) ( isPrime = false; break; ) ) 

Η forβρόχος διαρκεί από i == 2έως i <= n / 2και αυξάνει την αξία του i κατά 1 με κάθε επανάληψη.

Ο βρόχος τελειώνει στο i == n / 2γιατί δεν μπορούμε να βρούμε κανένα παράγοντα για το n πέρα ​​από τον αριθμό n / 2 . Άρα, τυχόν επαναλήψεις πέρα ​​από αυτό n / 2είναι περιττές.

Εάν ο αριθμός που έχει εισαχθεί από τον χρήστη διαιρείται τέλεια από το i, τότε το isPrime έχει οριστεί falseκαι ο αριθμός δεν θα είναι πρωταρχικός αριθμός.

Αλλά αν ο αριθμός εισαγωγής δεν είναι τέλεια διαιρούμενος από το i σε ολόκληρο τον βρόχο, τότε σημαίνει ότι ο αριθμός εισαγωγής διαιρείται μόνο από το 1 και τον ίδιο τον αριθμό.

Έτσι, ο δεδομένος αριθμός είναι ένας πρωταρχικός αριθμός.

Στην περίπτωση του n == 2, ο forβρόχος αποτυγχάνει να εκτελεστεί και η τιμή του isPrime παραμένει true.

ενδιαφέροντα άρθρα...