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 true
pada 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 for
gelung 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 for
gelung berlangsung dari i == 2
kepada i <= n / 2
dan meningkatkan nilai i oleh 1 dengan setiap lelaran.
Gelung berakhir pada i == n / 2
kerana kita tidak dapat mencari faktor apa pun untuk n melebihi nombor n / 2
. Jadi, sebarang lelaran di luar n / 2
adalah berlebihan.
Sekiranya nombor yang dimasukkan oleh pengguna dapat dibahagikan dengan sempurna oleh i, maka isPrime diatur ke false
dan 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
, for
gelung gagal dijalankan dan nilai isPrime tetap ada true
.