Program C ++ untuk Memeriksa Apakah Suatu Bilangan dapat Diekspresikan sebagai Jumlah Dua Bilangan Prima

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

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

  • C ++ untuk Loop
  • C ++ if, if… else dan Nested if… else
  • Fungsi C ++
  • Jenis Fungsi yang Ditentukan Pengguna di C ++

Program ini mengambil bilangan bulat positif dari pengguna dan memeriksa apakah bilangan itu dapat dinyatakan sebagai jumlah dari dua bilangan prima.

Jika bilangan tersebut dapat diekspresikan sebagai penjumlahan dari dua bilangan prima, outputnya menunjukkan kombinasi bilangan prima tersebut.

Untuk melakukan tugas ini, fungsi yang ditentukan pengguna dibuat untuk memeriksa bilangan prima.

Contoh: Periksa Apakah Suatu Bilangan Dapat Dinyatakan sebagai Penjumlahan Dua Bilangan Prima

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

Keluaran

 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 apakah suatu bilangan prima atau tidak.

Di main(), kami mengambil nomor dari pengguna dan menyimpannya di variabel n.

Kami juga menginisialisasi boolbendera variabel ke false. Kami menggunakan variabel ini untuk menentukan apakah bilangan masukan dapat dinyatakan sebagai jumlah dari dua bilangan prima.

Kami kemudian mengulang satu putaran dari i = 2menjadi i = n/2. Di setiap iterasi, kami memeriksa apakah i adalah bilangan prima atau bukan.

Jika i adalah bilangan prima, kita periksa apakah n - i adalah bilangan prima atau bukan.

Jika n - i juga merupakan bilangan prima, maka kita tahu bahwa n dapat diekspresikan sebagai hasil penjumlahan dari dua bilangan prima i dan n - i.

Jadi, kami mencetak hasilnya di layar dan mengubah nilai bendera menjadi true. Jika tidak, bendera tetap ada false.

Proses ini berlanjut hingga loop berakhir.

Jika flag diam false, maka kita tahu bahwa n tidak dapat diekspresikan sebagai jumlah dari dua bilangan prima, dan kita mencetak pesan itu di layar.

Artikel yang menarik...