21xrx.com
2024-11-22 08:12:34 Friday
登录
文章检索 我的文章 写文章
C++求解100到200间的素数(bool类型)
2023-07-11 14:52:20 深夜i     --     --
C++ 求解 素数 bool类型 100到200

C++是一种计算机程序设计语言,可以应用于各种不同的领域。其中,求解素数是一个常见的问题。本文将介绍如何用C++求解100到200间的素数,并介绍bool类型在该过程中的应用。

素数是指只能被1和自身整除的自然数。求解素数时,通常采用“试除法”或“筛法”。在这里,我们将采用筛法的一种——埃拉托斯特尼筛法。

在这个算法中,我们首先要创建一个bool类型的数组,用于标记每个数字是否是素数。然后,从2开始循环,若当前数字为素数,则将所有它的倍数都标记为非素数。执行完循环后,bool数组中值为true的数字即为100到200间的素数。

以下是代码实现:


#include <iostream>

#include <cmath>

using namespace std;

int main()

{

  const int MAX_NUMBER = 200;

  const int MIN_NUMBER = 100;

  bool is_prime[MAX_NUMBER + 1];

  for (int i = 2; i <= MAX_NUMBER; i++) {

    is_prime[i] = true;

  }

  for (int i = 2; i <= sqrt(MAX_NUMBER); i++) {

    if (is_prime[i]) {

      for (int j = i * i; j <= MAX_NUMBER; j += i) {

        is_prime[j] = false;

      }

    }

  }

  for (int i = MIN_NUMBER; i <= MAX_NUMBER; i++) {

    if (is_prime[i])

      cout << i << " ";

    

  }

  return 0;

}

在这段代码中,我们首先定义了MAX_NUMBER和MIN_NUMBER两个常量,分别代表要求解的范围。然后,我们创建了一个bool类型数组is_prime,记录所有数字是否为素数。数组初始化为true。随后,我们用两个嵌套循环,分别用于遍历每个数字和标记非素数。最后,我们遍历数组,输出值为true的数字即可。

总的来说,用C++求解100到200间的素数并不难,我们只需要掌握好bool类型的应用以及埃拉托斯特尼筛法即可。值得一提的是,在实际应用中,我们也可以使用其他更高效的算法,以提高求解速度。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复