Quel est le problème avec ma méthode isPrime?

C'est mon isPrime méthode:

private static boolean isPrime(int num) {
    if (num % 2 == 0) return false;
    for (int i = 3; i * i < num; i += 2)
        if (num % i == 0) return false;
    return true;
}

J'ai mis isPrime(9) et il retourne true. Quel est le problème avec la méthode?

source d'informationauteur usama8800