如果一个数字只有两个约数,即 1 和它本身,那么这个数字就称为质数。除了质数以外的所有其他数字都是合数。为了更好地理解这个检查质数的 C 语言程序示例,我们始终建议您学习下面列出的 C 语言编程基础知识。
要使用 C 语言程序检查给定数字是质数还是合数,我们必须理解质数和合数的概念。
质数是除了“1”和它本身之外没有其他正约数的整数。例如,“7”是一个质数,因为“7”只有2个约数,即“1”和“7”。除了质数以外的自然数称为合数。例如,数字“4”和“6”有不止两个约数,它们是合数。
注意:数字“1”不是质数,因为它只有一个约数。
在这里,我们编写一个 C 语言程序,通过使用取模运算符来判断一个数字是否为质数。
首先,我们检查数字是否大于1;如果不是,C 程序退出,显示该数字不是质数。否则,我们进入一个从1到该数字的“for 循环”,在该循环中我们检查“if( ( num % j ) == 0)”,如果为真,我们打印该数字不是质数。否则,给定整数是质数。
第一步: 包含头文件,以便在C程序中使用内置函数。
步骤 2: 声明并初始化变量为整数数据类型。
步骤 3: 使用printf和scanf内置函数从用户那里获取数字。
步骤 4: 使用“if”条件检查数字是否小于 1;如果是,则显示不是自然数并退出程序。
步骤 5: 打开一个从2到该数字一半的“for 循环”,并将“j”增加1。(我们只有该数字一半的约数)
步骤 6: 检查数字模“j”是否为零;如果是,我们将一个 Flag 变量设为一并跳出循环。
步骤 7: 使用“if”条件检查 Flag;如果 Flag 为零,则打印它是一个质数,否则它是一个合数。
#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