C++程序设计:筛选法求素数(谭浩强完整版)

需积分: 10 1 下载量 83 浏览量 更新于2024-08-24 收藏 8.66MB PPT 举报
"该资源是关于C++程序设计的教程,由谭浩强编著,内容涵盖C++语言的基础和应用。课程通过筛选取法演示如何找出2至200之间的所有素数,强调了算法在编程中的重要性。筛选法(筛法)通过将数组中的非素数标记为0,最终输出未被标记的数字,即素数。教程还简述了C++语言的发展历史,以及C语言的主要特点,包括结构化、高效性、可移植性和相对宽松的语法,但也指出这对初学者来说可能更具挑战性。" 在C++编程中,筛选取法(Sieve of Eratosthenes)是一种经典的算法,用于找出一定范围内所有的素数。这个方法的核心思想是从最小的素数2开始,剔除它的所有倍数,然后找到下一个未被剔除的数(在这个例子中是3),继续剔除它的倍数,以此类推,直到遍历到范围的平方根。在这个过程中,对于每个数i,如果它没有被标记为非素数(即数组中的值为非0),那么它就是一个素数。 在提供的示例中,首先初始化一个从2到200的数组,然后按照筛选法的步骤进行操作: 1. 从2开始,将其所有倍数标记为0(非素数)。 2. 接下来是3,同样的,将3的所有倍数(除了3本身)标记为0。 3. 继续这个过程,依次检查未被标记的下一个数5、7、9(虽然9=3*3,之前已经被处理过)等,直到达到200的平方根,即约14.14,实际操作中我们会取整到14,因为大于14的数不会是200以内小于14的数的倍数。 最后,数组中未被标记为0的数就是2到200之间的素数。这种算法的效率较高,因为它避免了对每个数进行因数分解,而是基于数的倍数性质来判断其素数状态。 C++语言起源于C语言,由Bjarne Stroustrup在1980年代初设计,目的是增强C语言的功能,引入了面向对象编程的概念,支持类、模板、异常处理等特性,同时保持了C语言的底层控制能力和高效性。C++至今仍然是广泛使用的编程语言,尤其在系统编程、游戏开发、高性能计算等领域有着重要应用。 C语言的主要特点包括: 1. 结构化编程:C语言鼓励使用函数和结构体,使得代码组织有序,易于理解和维护。 2. 高效性:C语言编译后的代码接近机器码,运行速度快,适合编写系统级和性能敏感的应用。 3. 可移植性:C语言的源代码在不同平台上的可移植性很高,因为它是编译型语言,只需针对目标平台重新编译即可。 4. 语法灵活性:C语言的语法较为宽松,允许程序员有较大的自由度来设计程序,但也因此对初学者有一定难度。 学习C++或C语言时,理解筛选法这样的基础算法,以及熟悉语言的这些特性,对于成为一名熟练的程序员至关重要。虽然调试可能较为复杂,但深入学习和实践可以帮助克服这一挑战。