C++中素数的并行计算

avatar
作者
筋斗云
阅读量:0

在C++中实现并行计算素数可以使用多线程或并行计算框架(例如OpenMP、TBB等)。以下是一个简单的例子使用OpenMP实现并行计算素数:

#include <iostream> #include <omp.h>  bool isPrime(int num) {     if (num <= 1) {         return false;     }     for (int i = 2; i <= num/2; i++) {         if (num % i == 0) {             return false;         }     }     return true; }  int main() {     #pragma omp parallel for     for (int i = 2; i <= 100; i++) {         if (isPrime(i)) {             #pragma omp critical             std::cout << i << " ";         }     }      return 0; } 

在上面的例子中,使用#pragma omp parallel for指令并行化for循环,同时使用#pragma omp critical来保护共享资源(这里是标准输出),避免多个线程同时写入导致混乱。您可以根据需要调整上面的代码来适应您的并行计算需求。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!