D'une part, il faut déclarer et définir dans les fichiers
loop.h et
loop.c une fonction
isPrime() ayant les caractéristiques suivantes :
- elle attend un paramètre n de type entier,
- elle fournit un résultat de type booléen,
- elle réalise une boucle pour compter de 2 à n-1
Par exemple, si n vaut 5, le compteur vaudra
successivement : 2, 3, 4.
,
- si n est divisible par ce compteur,
- alors la fonction peut immédiatement se terminer en indiquant
par son résultat que n n'est pas un nombre premier,
(n a un diviseur entier qui n'est pas 1 ni lui-même)
- à l'issue de la boucle, n est forcément premier s'il est supérieur
ou égal à 2,
(aucun diviseur entier de n n'a été trouvé ;
les nombres premiers commencent à 2)
- elle doit reposer sur l'usage de la boucle for().
Cette fonction indique donc si son paramètre
n est un nombre premier.
Indication :
- L'expression a%b (reste de la division entière de a par b)
vaut 0 si l'entier a est divisible par l'entier b.
D'autre part, il faut réaliser, dans le fichier
prog_ex0203.c, cette
fonction :
void
test_isPrime(void)
{
printf("\n~~~~ test_isPrime() ~~~~\n");
// ...
}
qui sera appelée depuis la fonction
main().
Elle doit être complétée pour vérifier que la fonction
isPrime()
indique bien le résultat attendu pour quelques valeurs connues.
Par exemple, parmi les entiers inférieurs à
20, seulement
ceux-ci sont premiers :
2,
3,
5,
7,
11,
13,
17,
19.