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

在此示例中,您将学习检查用户输入的整数是否可以表示为所有可能组合的两个质数之和。

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


为了完成此任务,我们将创建一个名为checkPrime()的函数。

如果传递给函数的数字是质数,则checkPrime()返回 1。


作为两个质数之和的整数

  1. #include <stdio.h>
  2. int checkPrime(int n);
  3. int main() {
  4. int n, i, flag = 0;
  5. printf("Enter a positive integer: ");
  6. scanf("%d", &n);
  7. for (i = 2; i <= n / 2; ++i) {
  8. // condition for i to be a prime number
  9. if (checkPrime(i) == 1) {
  10. // condition for n-i to be a prime number
  11. if (checkPrime(n - i) == 1) {
  12. printf("%d = %d + %d\n", n, i, n - i);
  13. flag = 1;
  14. }
  15. }
  16. }
  17. if (flag == 0)
  18. printf("%d cannot be expressed as the sum of two prime numbers.", n);
  19. return 0;
  20. }
  21. // function to check prime number
  22. int checkPrime(int n) {
  23. int i, isPrime = 1;
  24. for (i = 2; i <= n / 2; ++i) {
  25. if (n % i == 0) {
  26. isPrime = 0;
  27. break;
  28. }
  29. }
  30. return isPrime;
  31. }

输出

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