C 语言程序:检查给定整数是质数还是合数


2022年2月9日, Learn eTutorial
2615

如果一个数字只有两个约数,即 1 和它本身,那么这个数字就称为质数。除了质数以外的所有其他数字都是合数。为了更好地理解这个检查质数的 C 语言程序示例,我们始终建议您学习下面列出的 C 语言编程基础知识。

什么是质数和合数?

要使用 C 语言程序检查给定数字是质数还是合数,我们必须理解质数和合数的概念。

质数是除了“1”和它本身之外没有其他正约数的整数。例如,“7”是一个质数,因为“7”只有2个约数,即“1”和“7”。除了质数以外的自然数称为合数。例如,数字“4”和“6”有不止两个约数,它们是合数

注意:数字“1”不是质数,因为它只有一个约数。

如何在 C 语言中检查质数

在这里,我们编写一个 C 语言程序,通过使用取模运算符来判断一个数字是否为质数

首先,我们检查数字是否大于1;如果不是,C 程序退出,显示该数字不是质数。否则,我们进入一个从1到该数字的“for 循环”,在该循环中我们检查“if( ( num % j ) == 0)”,如果为真,我们打印该数字不是质数。否则,给定整数是质数。

算法

第一步: 包含头文件,以便在C程序中使用内置函数。

步骤 2: 声明并初始化变量为整数数据类型。

步骤 3: 使用printfscanf内置函数从用户那里获取数字。

步骤 4: 使用“if”条件检查数字是否小于 1;如果是,则显示不是自然数并退出程序。

步骤 5: 打开一个从2到该数字一半的“for 循环”,并将“j”增加1。(我们只有该数字一半的约数)

步骤 6: 检查数字模“j”是否为零;如果是,我们将一个 Flag 变量设为一并跳出循环。

步骤 7: 使用“if”条件检查 Flag;如果 Flag 为零,则打印它是一个质数,否则它是一个合数。

C 语言源代码

                                          #include <stdio.h>
#include <stdlib.h>


void main()
    {
        int num, j, flag;
        printf("Enter a number\n");                                 /* take the input number from user */
        scanf("%d", & num);
        if ( num <= 1)
            {
                 printf("%d is not a prime numbers\n", num);              /* check whether number is less than 1 */
                 exit(1);
            }
        flag = 0;
        for ( j=2; j<= num/2; j++)
           {
               if( ( num % j ) == 0)                                 /* do the calculation using mod operator and check the given number is prime or not  */
                  {
                      flag = 1;
                      break;
                  }
            }
        if(flag == 0)
        printf("%d is a prime number\n",num);
        else
        printf("%d is not a composite number\n", num);         /* prints the output of the program */
    }
                                      

输出

Output

RUN 1

Enter a number
34
34  is not a composite number

RUN 2

Enter a number
29
29 is a prime number