求素数的问题通常可以划分为两大类。
1、解决素数相关问题常用的方法主要有两种。
2、判断某个给定的数是否为质数。
3、找出所有小于指定数值的质数。
4、核心概念包括:素数是大于1且只能被1和其本身整除的自然数。要判断一个数是否为素数,可以通过尝试用从2到该数减1的所有整数去除它,若发现有能整除的因子,则说明它是合数;否则即为素数。对应的代码实现如下:
立即学习“C语言免费学习笔记(深入)”;

5、由于C语言中没有布尔类型,因此使用整型变量来表示判断结果,其中1表示该数为合数,0表示该数为素数。
6、对于第二类问题,存在两种常见的处理方式。
7、第一种方法是通过循环调用第一个判断函数,prim函数的功能保持不变。

8、以筛选小于1000的所有素数为例,运行后得到的结果如下图所示。

9、另一种方法是采用埃拉托斯特尼筛法(Sieve of Eratosthenes),从最小的质数2开始,依次将其所有倍数标记为非质数,持续操作直到达到预设上限。根据这一思路进行简化编码,具体实现代码如下:

10、实际运行效果如图所示:

11、两种方法输出结果完全一致,希望能对大家理解与学习素数相关算法提供帮助。










