21xrx.com
2024-11-05 18:33:56 Tuesday
登录
文章检索 我的文章 写文章
C++编程:求某个范围内的素数
2023-07-09 19:43:12 深夜i     --     --
C++ 编程 范围 素数 求解

C++编程是一种强大的编程语言,可以用于解决各种问题。其中一个常见的问题是求解某个范围内的素数。在本文中,我们将介绍如何使用C++编程语言来解决这个问题。

首先,我们需要明确什么是素数。素数是指在大于1的自然数中,除了1和本身以外没有其他的因数的数。例如,2、3、5、7等都是素数,而4、6、8等则不是素数。

对于求解某个范围内的素数问题,我们可以使用“筛法”。具体的实现方法是从2开始,将每个素数的倍数都标记成合数,最终剩下的未被标记成合数的数即为素数。

下面是具体的C++代码实现:


#include <iostream>

#include <cmath>

#include <vector>

using namespace std;

vector<int> prime(int n) {

  vector<bool> isPrime(n + 1, true);

  vector<int> primes;

  int limit = sqrt(n);

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

    if (isPrime[i]) {

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

        isPrime[j] = false;

      }

    }

  }

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

    if (isPrime[i]) {

      primes.push_back(i);

    }

  }

  return primes;

}

int main() {

  int n;

  cout << "请输入一个正整数n:";

  cin >> n;

  vector<int> primes = prime(n);

  cout << "1到" << n << "之间的素数为:";

  for (int i = 0; i < primes.size(); i++) {

    cout << primes[i] << " ";

  }

  cout << endl;

  return 0;

}

在此代码中,我们使用了vector来存储素数。首先通过标记法筛选出所有的合数,最后再输出剩下的素数即可。

总的来说,C++编程语言可以非常方便地解决求解某个范围内素数的问题。通过使用“筛法”以及vector来存储结果,我们可以非常轻易地解决问题,在实际的编程工作中也是非常有用的方法。

  
  

评论区

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