Impression des nombres premiers de 1 à 100

Ce code c++ imprime la suite des nombres premiers: 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97.

Mais je ne pense pas que c'est la façon dont mon livre veut qu'il soit écrit. Il mentionne quelque chose à propos de la racine carrée d'un nombre. J'ai donc essayé de changer mon 2ème boucle à for (int j=2; j<sqrt(i); j++) mais il ne me donne pas le résultat que j'ai besoin.

Comment aurais-je besoin de modifier ce code à la façon dont mon livre veut qu'il soit?

int main () 
{
    for (int i=2; i<100; i++) 
        for (int j=2; j<i; j++)
        {
            if (i % j == 0) 
                break;
            else if (i == j+1)
                cout << i << " ";

        }   
    return 0;
}

Un entier premier numéro est celui qui a
exactement deux diviseurs,
à savoir 1 et le nombre lui-même. Écrire,
exécuter et tester un programme en C++ qui
découvre et imprime tous les nombres premiers
moins de 100. (Indice: 1 est un nombre premier
numéro. Pour chaque nombre de 2 à 100,
trouver Reste = Nombre % n, où n
varie de 2 à sqrt(nombre). \ N
est plus grand que sqrt(nombre), la
le nombre n'est pas divisible par n.
Pourquoi? Si le Reste est égal à 0, le
le nombre n'est pas un nombre premier.)

source d'informationauteur Sahat Yalkabov