Błąd kompilatora „nieprawidłowy kontrolujący predykat” przy użyciu OpenMP

Tworzę podstawowy sprawdzian liczb pierwszych, oparty naC - określ, czy liczba jest liczbą pierwszą , ale wykorzystują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;
}

Podczas kompilacji za pomocą-fopenmp, GCC wersja 4.7.2 jest błędna, stwierdzającinvalid controlling predicate w odniesieniu do pętli for.

Wygląda na to, że błąd jest spowodowany przez kwadrat w pętli for. Czy istnieje sposób, aby obejść ten problem i nadal osiągnąć pożądany wynik algorytmu?

questionAnswers(2)

yourAnswerToTheQuestion