Erro de compilador "invalid controlling predicate" usando o OpenMP

Estou criando um verificador básico de números primos, baseado emC - determina se um número é primo , mas utilizando o 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;
}

Ao compilar com-fopenmp, O GCC versão 4.7.2 está com erro, afirmandoinvalid controlling predicate em relação ao loop for.

Parece que esse erro é causado pelo j quadrado no loop for. Existe uma maneira de contornar isso e ainda obter a saída desejada do algoritmo?

questionAnswers(2)

yourAnswerToTheQuestion