← (précédent) B.5 Correction : Tirage par ordre numérique
B.7 Correction : Triangle de PAscal
Accueil S O M M A I R E

B.6 Correction : Nombres premiers

Mini-projet 4 : Nombres Premiers

a. Ecrire une méthode ( appelée divise( ) ) qui, étant donnés deux entiers strictement positifs p et q, teste si p divise q.

b. Utilisez la méthode divise( ) pour écrire une méthode qui, étant donné un entier p, retourne le nombre de diviseurs de p. exemple : 12 à 6 diviseurs : 1,2,3,4,6,12.
La méthode s'appellera nbreDiviseurs

c. En utilisant la méthode nbreDiviseurs, écrire une méthode (appelée estPremier() ) qui teste le caractère Premier d'un nombre.

d. En fait, si l'on trouve un diviseur pour un nombre p qui est différent de 1 et de p, on peut en déduire immédiatement que p n'est pas premier. Ecrire une méthode (estPremierBis() ) utilisant cette propriété.

e. Améliorer en ne considérant comme diviseurs que le nombre 2 et les nombres impairs (en effet si un nombre n'est pas divisible par 2, il ne sera divisible par aucun nombre pairs !)

f. Améliorer en arretant les tests lorsque le diviseur dépasse la racine carrée de n. (en effet, si un diviseur de p est supérieur à la racine carrée de n, le quotient est donc inférieur à n et aura été trouvé avant).

g. Ecrire une fonction affichant la liste des n premiers nombres premiers inférieurs à n.

Un nombre premier est un entier naturel, admettant exactement deux diviseurs distincts : 1 et lui-même.

Par opposition, un nombre non nul produit de deux nombres entiers différents de 1 est dit composé.
Par exemple 12 = 2×6 est composé, tout comme 21 = 3×7 ou 7×3. Mais 11 est premier car 1 et 11 sont les seuls diviseurs de 11. 1 n'est ni premier ni composé. Les nombres premiers inférieurs à 100 sont :
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 , 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 et 97.

Un nombre entier p divise un nombre entier q si le reste de la division entière de p par q est zéro.

a. Ecrire une méthode ( appelée divise( ) ) qui, étant donnés deux entiers strictement positifs p et q, teste si p divise q.

Correction mini-projet 3 : ordre croissant

public static boolean divise(int p, int q)
{
	boolean verite = false;
	if(q % p == 0)
	{
	     verite = true;
	}
	return verite;
}                
b. Utilisez la méthode divise( ) pour écrire une méthode qui, étant donné un entier p, retourne le nombre de diviseurs de p. exemple : 12 à 6 diviseurs : 1,2,3,4,6,12.
La méthode s'appellera nbreDiviseurs( )
public static int nbreDiviseurs(int p)
{
    int nbre = 0;
    for(int i = 1; i <= p; i++)
    {
        if(divise(i, p))
        {
            nbre++;
        }
        return nbre;
    }
}
c. En utilisant la méthode nbreDiviseurs, écrire une méthode (appelée estPremier() ) qui teste le caractère Premier d'un nombre.
public static boolean estPremier(int p)
{
    boolean verite = false;
    if(nbreDiviseurs(p) == 2)
    {
        verite = true;
    }
    return verite;
}
d. En fait, si l'on trouve un diviseur pour un nombre p qui est différent de 1 et de p, on peut en déduire immédiatement que p n'est pas premier. Ecrire une méthode (estPremierBis() ) utilisant cette propriété.
public static boolean estPremierBis(int p)
{
    boolean verite = false;
    for(int i = 1; i <= p; i++)
    {
        if(p % i !=1 && p % i !=1 )
        {
            verite = true;
        }
        return verite;
    }
}
Je vous laisse le soin d'écrire les question e, f et g. Et aussi de créer un programme pour tester mes méthodes et vos méthodes.

N'oubliez pas : C'est à force de programmer qu'on devient un bon programmeur. La réflexion personnelle vaut mieux que des exercices corrigés et expliqués.
La connaissance, c'est bien. La partager, c'est mieux
Conseiller ce site à un(e) ami(e):

Son e-mail est :       
Une suggestion à faire pour ce site ? ... Contact : webmaster@debutantprog.com
← (précédent) B.5 Correction : Tirage par ordre numérique
B.7 Correction : Triangle de PAscal
Accueil S O M M A I R E

B.6 Correction : Nombres premiers