小编Nic*_*ick的帖子

使用OpenMP"无效控制谓词"编译器错误

我正在创建一个基本的素数检查器,基于C - 确定一个数字是否为素数 ,但是使用OpenMP.

int isPrime(int value)
{
    omp_set_num_threads(4);

    #pragma omp parallel for 
    for( int j = 2;  j * j <= value; j++)
    {
    if ( value % j == 0) return 0;
    }
    return value;
}
Run Code Online (Sandbox Code Playgroud)

使用-fopenmp进行编译时,GCC版本4.7.2 出错,说明invalid controlling predicatefor循环.

看起来这个错误是由for循环中的j平方引起的.有没有办法解决这个问题,仍然可以从算法中获得所需的输出?

c openmp

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

c ×1

openmp ×1