原文: https://www.programiz.com/cpp-programming/examples/sum-prime-numbers

使用函数检查整数(由用户输入)是否可以表示为所有可能组合的两个质数之和的示例。

要理解此示例,您应该了解以下 C++ 编程主题:


该程序从用户处获取一个正整数,并检查该数字是否可以表示为两个质数的总和。

如果数字可以表示为两个质数之和,则输出将显示质数的组合。

为了执行此任务,创建了一个用户定义的函数来检查质数


示例:检查一个数字是否可以表示为两个质数之和

  1. #include <iostream>
  2. using namespace std;
  3. bool checkPrime(int n);
  4. int main()
  5. {
  6. int n, i;
  7. bool flag = false;
  8. cout << "Enter a positive integer: ";
  9. cin >> n;
  10. for(i = 2; i <= n/2; ++i)
  11. {
  12. if (checkPrime(i))
  13. {
  14. if (checkPrime(n - i))
  15. {
  16. cout << n << " = " << i << " + " << n-i << endl;
  17. flag = true;
  18. }
  19. }
  20. }
  21. if (!flag)
  22. cout << n << " can't be expressed as sum of two prime numbers.";
  23. return 0;
  24. }
  25. // Check prime number
  26. bool checkPrime(int n)
  27. {
  28. int i;
  29. bool isPrime = true;
  30. for(i = 2; i <= n/2; ++i)
  31. {
  32. if(n % i == 0)
  33. {
  34. isPrime = false;
  35. break;
  36. }
  37. }
  38. return isPrime;
  39. }

输出

  1. Enter a positive integer: 34
  2. 34 = 3 + 31
  3. 34 = 5 + 29
  4. 34 = 11 + 23
  5. 34 = 17 + 17