Program C ++ untuk Memeriksa Sama ada Nombor boleh dinyatakan sebagai Jumlah Dua Nombor Perdana

Contoh untuk memeriksa apakah bilangan bulat (dimasukkan oleh pengguna) dapat dinyatakan sebagai jumlah dua bilangan prima dari semua kemungkinan kombinasi dengan penggunaan fungsi.

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

  • C ++ untuk Gelung
  • C ++ jika, jika… lain dan Bersarang jika… lain
  • Fungsi C ++
  • Jenis Fungsi yang ditentukan pengguna dalam C ++

Program ini mengambil bilangan bulat positif dari pengguna dan memeriksa sama ada nombor itu dapat dinyatakan sebagai jumlah dua nombor perdana.

Sekiranya nombor tersebut dapat dinyatakan sebagai jumlah dua nombor perdana, output menunjukkan gabungan nombor perdana.

Untuk melaksanakan tugas ini, fungsi yang ditentukan pengguna dibuat untuk memeriksa nombor perdana.

Contoh: Periksa sama ada Nombor boleh dinyatakan sebagai Jumlah Dua Nombor Perdana

 #include using namespace std; bool checkPrime(int n); int main() ( int n, i; bool flag = false; cout <> n; for(i = 2; i <= n/2; ++i) ( if (checkPrime(i)) ( if (checkPrime(n - i)) ( cout << n << " = " << i << " + " << n-i << endl; flag = true; ) ) ) if (!flag) cout << n << " can't be expressed as sum of two prime numbers."; return 0; ) // Check prime number bool checkPrime(int n) ( int i; bool isPrime = true; // 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; ) ) ) return isPrime; ) 

Pengeluaran

 Masukkan bilangan bulat positif: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

Dalam program ini, kami menggunakan checkPrime()fungsi untuk memeriksa sama ada nombor adalah bilangan prima atau tidak.

Di main(), kami mengambil nombor dari pengguna dan menyimpannya dalam pemboleh ubah n.

Kami juga memulakan boolbendera berubah menjadi false. Kami menggunakan pemboleh ubah ini untuk menentukan sama ada nombor input dapat dinyatakan sebagai jumlah dua nombor perdana.

Kami kemudian mengulangi gelung dari i = 2ke i = n/2. Dalam setiap lelaran, kami memeriksa sama ada saya nombor perdana atau tidak.

Sekiranya saya adalah perdana, kami memeriksa sama ada n - i adalah perdana atau tidak.

Sekiranya n - i juga bilangan prima, maka kita tahu bahawa n dapat dinyatakan sebagai jumlah dua nombor perdana i dan n - i.

Oleh itu, kami mencetak hasilnya di skrin dan menukar nilai bendera menjadi true. Jika tidak, bendera tetap ada false.

Proses ini berterusan sehingga gelung berakhir.

Sekiranya bendera masih false, maka kita tahu bahawa n tidak dapat dinyatakan sebagai jumlah dua bilangan prima, dan kita mencetak mesej itu di layar.

Artikel menarik...