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

在此示例中,您将学习检查用户输入的整数是否是质数。

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


质数是一个只能被1及其本身整除的正整数。 例如:2、3、5、7、11、13、17


检查质数的程序

  1. #include <stdio.h>
  2. int main() {
  3. int n, i, flag = 0;
  4. printf("Enter a positive integer: ");
  5. scanf("%d", &n);
  6. for (i = 2; i <= n / 2; ++i) {
  7. // condition for non-prime
  8. if (n % i == 0) {
  9. flag = 1;
  10. break;
  11. }
  12. }
  13. if (n == 1) {
  14. printf("1 is neither prime nor composite.");
  15. }
  16. else {
  17. if (flag == 0)
  18. printf("%d is a prime number.", n);
  19. else
  20. printf("%d is not a prime number.", n);
  21. }
  22. return 0;
  23. }

输出

  1. Enter a positive integer: 29
  2. 29 is a prime number.

在程序中,从i = 2循环到i < n/2进行for循环。

在每次迭代中,使用以下命令检查n是否可被i完全整除。

  1. if (n % i == 0) {
  2. }

如果ni完全整除,则n不是质数。 在这种情况下,flag设置为 1,并使用break语句终止循环。

循环后,如果n为质数,则flag仍为 0。但是,如果n为非质数,则flag将为 1。

访问此页面以了解如何打印两个间隔之间的所有质数。