Програма C ++ за проверка дали дадено число може да бъде изразено като сума от две прости числа

Пример за проверка дали цяло число (въведено от потребителя) може да бъде изразено като сбор от две прости числа от всички възможни комбинации с използването на функции.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на C ++:

  • C ++ за Loop
  • C ++ ако, ако … друго и вложено ако … друго
  • C ++ функции
  • Видове дефинирани от потребителя функции в C ++

Тази програма взема положително цяло число от потребителя и проверява дали това число може да бъде изразено като сбор от две прости числа.

Ако числото може да бъде изразено като сбор от две прости числа, изходът показва комбинацията от прости числа.

За да изпълни тази задача, се създава дефинирана от потребителя функция за проверка на просто число.

Пример: Проверете дали дадено число може да бъде изразено като сбор от две прости числа

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

Изход

 Въведете положително цяло число: 34 34 = 3 + 31 34 = 5 + 29 34 = 11 + 23 34 = 17 + 17 

В тази програма използваме checkPrime()функцията, за да проверим дали числото е просто или не.

В main(), ние приемаме редица от страна на потребителя и да го съхранява в индексът п.

Също така инициализираме boolфлаг на променлива в false. Използваме тази променлива, за да определим дали входното число може да бъде изразено като сбор от две прости числа.

След това итерираме цикъл от i = 2до i = n/2. Във всяка итерация проверяваме дали i е просто число или не.

Ако i е просто число, проверяваме дали n - i е просто число или не.

Ако n - i е и просто число, тогава знаем, че n може да бъде изразено като сбор от две прости числа i и n - i.

И така, отпечатваме резултата на екрана и променяме стойността на флага на true. В противен случай флагът остава false.

Този процес продължава, докато цикълът приключи.

Ако флагът е неподвижен false, тогава знаем, че n не може да бъде изразено като сбор от две прости числа и отпечатваме това съобщение на екрана.

Интересни статии...