21xrx.com
2025-03-23 13:28:40 Sunday
文章检索 我的文章 写文章
求素数的个数——一道经典的C语言练手题
2023-06-15 16:46:29 深夜i     --     --
素数 C语言 循环 枚举 判断

素数一直是计算机编程中常见的一个概念,那么如何用C语言程序快速求出一定范围内的素数个数呢?本文将介绍一种经典的思路及其实现过程。

首先,我们需要知道什么是素数。素数又称质数,是指只能被1和自身整除的正整数,比如2、3、5、7、11、13等等。因此,如果我们要判断一个数x是否为素数,则只需要用2~x-1中的所有数去除x,如果都不能整除,则x为素数。

有了这个判断素数的方法,我们便可以在一定范围内枚举求出所有的素数。具体来说,我们可以用两层循环,第一层枚举所有可能的素数x,第二层则用2~x-1中的数去尝试除x,如果成功求出所有素数后,再统计个数即可。

下面是实现代码:

#include
int main(void){
  int n,i,j,cnt=0;
  printf("请输入一个自然数n:");
  scanf("%d",&n);
  for(i=2;i<=n;i++){
    int flag=1;
    for(j=2;j
      if(i%j==0)
        flag=0;
        break;
      
    }
    if(flag==1){
      cnt++;
    }
  }
  printf("%d以内的素数个数为:%d",n,cnt);
  return 0;
}

代码中flag用于标记是否为素数,初值为1,每次找到可以整除i的j时,flag变成0,接着跳出循环。之后,再根据标记来判断i是否为素数。

  
  

评论区