Error del compilador "predicado de control no válido" al utilizar OpenMP

Estoy creando un verificador básico de números primos, basado enC - determina si un número es primo , pero utilizando 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;
}

Al compilar con-fopenmp, La versión 4.7.2 de GCC está fallando, indicandoinvalid controlling predicate con respecto al bucle for.

Parece que este error es causado por la j al cuadrado en el bucle for. ¿Hay alguna manera de evitar esto y lograr el resultado deseado del algoritmo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta