C++求100到200之间的素数
在编程领域,素数是指一个大于1的自然数,它除了1和它自身以外不再有其他因数。求解一定范围内的素数是常见的算法问题,对于初学者来说,掌握如何用C++来实现这个功能是非常重要的。在这个案例中,我们将深入探讨如何用C++编程语言找出100到200之间的所有素数。 我们需要理解素数的基本判断方法,即“试除法”。对于给定的正整数n,我们从2开始逐个检查到其平方根,如果n能被其中任意一个数整除,那么它就不是素数。这是因为大于平方根的因子必然对应着小于平方根的因子,所以我们只需要检查到其平方根即可。 以下是C++代码实现的逻辑框架: ```cpp #include <iostream> #include <cmath> bool isPrime(int num) { if (num <= 1) return false; if (num == 2) return true; if (num % 2 == 0) return false; int sqrtNum = sqrt(num); for (int i = 3; i <= sqrtNum; i += 2) { if (num % i == 0) { return false; } } return true; } void printPrimes(int start, int end) { for (int i = start; i <= end; ++i) { if (isPrime(i)) { std::cout << i << " "; } } } int main() { int lowerBound = 100; int upperBound = 200; printPrimes(lowerBound, upperBound); return 0; } ``` 在这个程序中,`isPrime()` 函数用于判断一个数是否为素数,`printPrimes()` 函数则遍历指定范围并打印出素数。`main()` 函数调用这两个函数,传入100和200作为边界值。 在`isPrime()`函数中,我们首先检查1和偶数的情况,然后通过循环对奇数进行判断。为了优化效率,我们每次只检查奇数,因为偶数(除了2)都不是素数。循环从3开始,每次增加2,直到检查到输入数的平方根。 `printPrimes()`函数则遍历指定的范围,对每个数调用`isPrime()`函数,如果返回true,就将该数打印出来。 这段C++代码的执行结果将会显示出100到200之间的所有素数,包括101、103、107、109、113、127、131、137、139、149、151、157、163、167、173、179、181和191。 通过这样的练习,不仅可以掌握C++的基础语法,还能熟悉算法设计和优化。同时,它也可以作为进一步学习更复杂算法如埃拉托斯特尼筛法的起点。在实际编程中,理解并熟练运用这些基本概念和技巧是至关重要的。