Program C ++ untuk Memeriksa Apakah Suatu Nomor Perdana atau Tidak

Contoh untuk memeriksa apakah sebuah integer (dimasukkan oleh pengguna) adalah bilangan prima atau tidak menggunakan pernyataan for loop dan if… else.

Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman C ++ berikut:

  • C ++ if, if… else dan Nested if… else
  • C ++ untuk Loop
  • C ++ break dan lanjutkan Pernyataan

Bilangan bulat positif yang hanya habis dibagi 1 dan itu sendiri disebut bilangan prima.

Contoh: 13 adalah bilangan prima karena hanya habis habis dibagi 1 dan 13 tetapi, 15 bukan bilangan prima karena habis habis dibagi 1, 3, 5 dan 15.

Catatan: 0 dan 1 bukanlah bilangan prima.

Contoh: Cek Prime Number

 #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; ) 

Keluaran

 Masukkan bilangan bulat positif: 29 29 adalah bilangan prima.

Program ini mengambil bilangan bulat positif dari pengguna dan menyimpannya di variabel n.

Perhatikan bahwa variabel boolean isPrime diinisialisasi truedi awal program.

Karena 0 dan 1 bukan bilangan prima, pertama-tama kita periksa apakah bilangan yang dimasukkan adalah salah satu dari bilangan tersebut atau bukan. Jika nomor input adalah 0 atau 1 , maka nilai isPrime diatur ke false.

Jika tidak, nilai awal isPrime dibiarkan tidak berubah dan forloop dijalankan, yang memeriksa apakah nomor yang dimasukkan oleh pengguna dapat dibagi sempurna oleh i atau tidak.

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

The forloop berjalan dari i == 2ke i <= n / 2dan meningkatkan nilai dari i oleh 1 dengan setiap iterasi.

Perulangan berakhir pada i == n / 2karena kita tidak dapat menemukan faktor apapun untuk n di luar bilangan tersebut n / 2 . Jadi, iterasi apa pun di luarnya n / 2adalah mubazir.

Jika bilangan yang dimasukkan oleh pengguna habis habisnya oleh i, maka isPrime disetel ke falsedan bilangan tersebut bukan bilangan prima.

Tetapi jika bilangan input tidak habis dibagi i di seluruh loop, maka itu berarti bilangan input hanya habis dibagi 1 dan bilangan itu sendiri.

Jadi, bilangan yang diberikan adalah bilangan prima.

Dalam kasus n == 2, forloop gagal berjalan dan nilai isPrime tetap ada true.

Artikel yang menarik...