Program C ++ untuk Memeriksa Sama ada Nombor adalah Perdana atau Tidak

Contoh untuk memeriksa sama ada bilangan bulat (dimasukkan oleh pengguna) adalah nombor perdana atau tidak menggunakan gelung dan jika… pernyataan lain.

Untuk memahami contoh ini, anda harus mempunyai pengetahuan mengenai topik pengaturcaraan C ++ berikut:

  • C ++ jika, jika… lain dan Bersarang jika… lain
  • C ++ untuk Gelung
  • C ++ rehat dan teruskan Penyata

Bilangan bulat positif yang hanya boleh dibahagi dengan 1 dan ia sendiri dikenali sebagai nombor perdana.

Contohnya: 13 adalah nombor perdana kerana hanya boleh dibahagi dengan 1 dan 13 tetapi, 15 bukan nombor perdana kerana boleh dibahagi dengan 1, 3, 5 dan 15.

Nota: 0 dan 1 bukan nombor perdana.

Contoh: Periksa Nombor Perdana

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

Pengeluaran

 Masukkan bilangan bulat positif: 29 29 adalah nombor perdana.

Program ini mengambil bilangan bulat positif dari pengguna dan menyimpannya dalam pemboleh ubah n.

Perhatikan bahawa pemboleh ubah boolean isPrime diinisialisasi truepada awal program.

Oleh kerana 0 dan 1 bukan nombor perdana, pertama-tama kami memeriksa sama ada nombor input adalah salah satu nombor tersebut atau tidak. Sekiranya nombor input sama ada 0 atau 1 , maka nilai isPrime ditetapkan ke false.

Jika tidak, nilai awal isPrime dibiarkan tidak berubah dan forgelung dijalankan, yang memeriksa sama ada nombor yang dimasukkan oleh pengguna dapat dibahagikan dengan sempurna oleh i atau tidak.

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

The forgelung berlangsung dari i == 2kepada i <= n / 2dan meningkatkan nilai i oleh 1 dengan setiap lelaran.

Gelung berakhir pada i == n / 2kerana kita tidak dapat mencari faktor apa pun untuk n melebihi nombor n / 2 . Jadi, sebarang lelaran di luar n / 2adalah berlebihan.

Sekiranya nombor yang dimasukkan oleh pengguna dapat dibahagikan dengan sempurna oleh i, maka isPrime diatur ke falsedan nombor tersebut tidak akan menjadi nombor utama.

Tetapi jika nombor input tidak dapat dibahagikan dengan sempurna oleh i sepanjang keseluruhan gelung, maka itu bermaksud bahawa nombor input hanya boleh dibahagikan dengan 1 dan nombor itu sendiri.

Jadi, nombor yang diberikan adalah nombor perdana.

Dalam kes n == 2, forgelung gagal dijalankan dan nilai isPrime tetap ada true.

Artikel menarik...