Here we are going to check whether an integer can be expressed as the sum of two prime numbers.
A prime number (or prime integer, often simply called a "prime" for short) is a positive integer that has no positive integer divisors other than 1 and itself. E.g. 2, 3, 5, 7, 11.
Ask the user to enter a positive integer and store it in the variable n. Use a user function check_prime() to check whether a number is prime or not. Now, Initialize a Boolean-type variable flag to false initially. This variable is used to determine whether the input number can be expressed as the sum of two prime numbers. then we start a for loop from i = 2 to i = n/2. In each iteration, we have to check i is prime or not, if the i is prime then we have to know that n-i us prime or not, if that also is prime, we can say that the user-entered number can be expressed as the sum of prime numbers.
So, we display the result and change the flag to true or one. Otherwise, the flag remains false or zero until the end of loop. Finally, If the flag is false, the number can be expressed as sum of two prime numbers.
Step 1: Call the header file iostream
.
Step 2: Use the namespace std.
Step 3: Declare two integer type variables n, i and float type variable flag = false;
Step 4: Ask the user to enter a positive integer;
Step 5: Read the number into the variable n;
Step 6: Iterate a loop from i= 2 to i = n/2.
Check if i is a prime number or not.
If yes then check whether n-1 is prime or not
If yes then n can be expressed as the sum of two prime numbers i and n-i
Step 7: set the flag to true;
Step 8: print the result on the screen
Step 9: Exit
#include <iostream>
using namespace std;
bool check_prime(int n);
int main() {
int n, i;
bool flag = false;
cout << "Enter a positive integer: ";
cin >> n;
for(i = 2; i <= n/2; ++i) {
if (check_prime(i)) {
if (check_prime(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 check_prime(int n) {
int i;
bool is_prime = true;
// 0 and 1 are not prime numbers
if (n == 0 || n == 1) {
is_prime = false;
}
for(i = 2; i <= n/2; ++i) {
if(n % i == 0) {
is_prime = false;
break;
}
}
return is_prime;
}
Enter a positive integer: 48 48 = 5 + 43 48 = 7 + 41 48 = 11 + 37 48 = 17 + 31 48 = 19 + 29