C语言教程
C语言控制语句
C语言函数
C语言数组
C语言指针
C语言字符串
C语言数学函数
C语言结构
C语言文件处理
C预处理器

C 检查一个数是否可​​以表示为两个质数之和的程序

C 程序检查一个数是否可​​以表示为两个质数之和

在此示例中,您将学习检查用户输入的整数是否可以表示为所有可能组合的两个素数之和。
要理解此示例,您应该了解以下C 编程 主题:
C if...else 语句 C for 循环 C 函数 C 用户定义函数
该程序从用户那里获取一个正整数,并检查该数字是否可以表示为两个素数之和。
如果数字可以表示为两个质数之和,则输出显示质数的组合。
为了执行此任务,创建了一个用户定义的函数来检查素数。

两个质数之和的整数

#include <stdio.h>
int checkPrime(int n);
int main() {
  int n, i, flag = 0;
  printf("Enter a positive integer: ");
  scanf("%d", &n);
  for (i = 2; i <= n / 2; ++i) {
    // condition for i to be a prime number
    if (checkPrime(i) == 1) {
      // condition for n-i to be a prime number
      if (checkPrime(n-i) == 1) {
        printf("%d = %d + %d\n", n, i, n-i);
        flag = 1;
      }
    }
  }
  if (flag == 0)
    printf("%d cannot be expressed as the sum of two prime numbers.", n);
  return 0;
}
// function to check prime number
int checkPrime(int n) {
  int i, isPrime = 1;
  // 0 and 1 are not prime numbers
  if (n == 0 || n == 1) {
    isPrime = 0;
  }
  else {
    for(i = 2; i <= n/2; ++i) {
      if(n % i == 0) {
        isPrime = 0;
        break;
      }
    }
  }
  return isPrime;
}
输出
Enter a positive integer: 34
34 = 3 + 31
34 = 5 + 29
34 = 11 + 23
34 = 17 + 17
在这个程序中,我们使用 checkPrime()函数来检查一个数是否是素数。
main()中,我们从用户那里获取一个数字并将其存储在变量 n中。
我们还将 int 变量 flag 初始化为 0。我们用这个变量来判断输入的数是否可以表示为两个素数之和。
然后我们迭代一个从 i = 2i = n/2的循环。在每次迭代中,我们检查 i 是否为素数。
如果 i 是素数,我们检查 n-i 是否是素数。
如果 n-i 也是素数,那么我们知道 n 可以表示为两个素数 in-i.
因此,我们在屏幕上打印结果并将 flag 的值更改为 1。否则, flag 仍然是 0
这个过程一直持续到循环结束。
如果 flag仍然是 0,那么我们知道 n不能表示为两个素数之和,我们打印屏幕上的那条消息。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4