💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# C 程序:检查数字是否为质数 > 原文: [https://www.programiz.com/c-programming/examples/prime-number](https://www.programiz.com/c-programming/examples/prime-number) #### 在此示例中,您将学习检查用户输入的整数是否是质数。 要理解此示例,您应该了解以下 [C 编程](/c-programming "C tutorial")主题: * [C `if...else`语句](/c-programming/c-if-else-statement) * [C `for`循环](/c-programming/c-for-loop) * [C `break`和`continue`](/c-programming/c-break-continue-statement) * * * 质数是一个只能被`1`及其本身整除的正整数。 例如:2、3、5、7、11、13、17 * * * ## 检查质数的程序 ```c #include <stdio.h> int main() { int n, i, flag = 0; printf("Enter a positive integer: "); scanf("%d", &n); for (i = 2; i <= n / 2; ++i) { // condition for non-prime if (n % i == 0) { flag = 1; break; } } if (n == 1) { printf("1 is neither prime nor composite."); } else { if (flag == 0) printf("%d is a prime number.", n); else printf("%d is not a prime number.", n); } return 0; } ``` **输出** ```c Enter a positive integer: 29 29 is a prime number. ``` * * * 在程序中,从`i = 2`循环到`i < n/2`进行`for`循环。 在每次迭代中,使用以下命令检查`n`是否可被`i`完全整除。 ```c if (n % i == 0) { } ``` 如果`n`被`i`完全整除,则`n`不是质数。 在这种情况下,`flag`设置为 1,并使用`break`语句终止循环。 循环后,如果`n`为质数,则`flag`仍为 0。但是,如果`n`为非质数,则`flag`将为 1。 访问此页面以了解如何[打印两个间隔](https://www.programiz.com/c-programming/examples/prime-number-intervals)之间的所有质数。