Besoin d'aide urgent

  • Initiateur de la discussion Initiateur de la discussion NJ
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

NJ

Guest
Bonjour!

Je cherche comment faire une feuille de calcul ou une application (avec excel) pour trouver si un nombre est premier ou non... c'ets plutot simple, mais je n'ai aucune idée du pourquoi et surtout du comment, alors pourriez-vous m'aider?

je vous explique, c'ets pour un cours de math pour lundi, donc c assez urgent!!

Cela doit permettre de trouver si n'importe quel nombre est premier. Pour cela, il faudrait que l'application fasse dans l'ordre des divisions du nombre en questions par les principaux nombres premiers (sans en oublier aucun, et dans l'ordre successif donné): d'abord par 2, puis 3, puis 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 etc

l'ordi doit s'arreter lorsque le reste nul survient ou que le quotient devient inférieur ou égal au diviseur. Si le reste nul survient, le nombre n'ets pas premier. sinon il ets premier.

ex : pour 35

32/1=17 il reste 1;
35/3=11 il reste 2;
35/5=7 reste 0. Stop.
35 n'ets pas premier car 35=5*7. Voila ce que l'application de vrait faire.

un autre exemple :
pour 31 :
31/2=15 il reste 1;
31/3=10 il reste 1;
31/5=6 il reste 1;
31/7=4 il reste 3,
mais le quotient (4) est inférieur au diviseur(7), donc stop. 31 appartient aux nombres premiers.

Pouvez m'aider? (je vous en prie c'ets urgent!!)

merci d'avance

@ bientôt
 
Il y a sûrement plus simple... Mais ça marche.

Le nombre à tester est en A1

En B1 : =SI(ET((A1/3-TRONQUE(A1/3)<>0);OU(A1<4;A1=5;A1=7;A1=9;A1=11;A1=13;A1=17;A1=19;MOD(A1;6)=1;MOD(A1;6)=5));1;0)

En C1 : =SI(ET((A1/5-TRONQUE(A1/5)<>0);OU(A1<4;A1=5;A1=7;A1=9;A1=11;A1=13;A1=17;A1=19;MOD(A1;6)=1;MOD(A1;6)=5));1;0)

En D1 : idem avec 7
En E1 : idem avec 11
En F1 : idem avec 13
En G1 : idem avec 17
En H1 : idem avec 19
En I1 : idem avec 23
En J1 : idem avec 29

En K1: =SI(OU(A1=1;A1=2;A1=3;A1=5;A1=7;A1=11;A1=13;A1=17;A1=19;A1=23;A1=29);1;MIN(B1:J1))

La conclusion : =SI(K1=0;CONCATENER(A1;" n'est pas un nombre premier.");CONCATENER(A1;" est un nombre premier."))

Evidemment, on peut continuer avec 31, 37, etc...
 
J'ai trouvé plus simple.
Et plus facile à compléter au fur et à mesure que l'on a utilisé le système.
Ce système ne teste les nombres que jusqu'à 7921 (89*89)

Le nombre à tester est en A1

Première formule en B1 :
=SI(ET(MOD(A1;2)>0;MOD(A1;3)>0;MOD(A1;5)>0;MOD(A1;7)>0;MOD(A1;11)>0;MOD(A1;13)>0;MOD(A1;17)>0;MOD(A1;19)>0;MOD(A1;23)>0;MOD(A1;29)>0;MOD(A1;31)>0;MOD(A1;37)>0;MOD(A1;41)>0;MOD(A1;43)>0;MOD(A1;47)>0;MOD(A1;53)>0;MOD(A1;59)>0;MOD(A1;61)>0;MOD(A1;67)>0;MOD(A1;71)>0;MOD(A1;73)>0;MOD(A1;79)>0;MOD(A1;83)>0;MOD(A1;89)>0);1;0)

La fonction = MOD(A1;x) renvoie le reste de la division A1/x
On divise le nombre à tester par 2, 3, 5, 7, 11, 13, 17, 19, etc jusqu'à ce qu'on en ait marre.
Si aucune des divisions successives n'obtient un reste nul, le nombre à tester est supposé être premier.
On demande donc à la fonction "=si(et( " de mettre "1" (à la place de "oui") si toutes ces divisions ont un reste.

Mais...
On a utilisé dans cette formule les premiers nombres premiers de la série.
Il est évident que si le nombre à tester fait partie de cette série, sa division par lui-même donne un reste nul.

Donc deuxième formule en C1 :
=SI(OU(A1=1;A1=2;A1=3;A1=5;A1=7;A1=11;A1=13;A1=17;A1=19;A1=23;A1=29;A1=31;A1=37;A1=41;A1=43;A1=47;A1=53;A1=61;A1=67;A1=71;A1=73;A1=79;A1=83;A1=89);1;B1)
Cette deuxième formule fait le tri :
Le nombre à tester fait-il ou non partie des nombres utilisés comme diviseurs dans la première formule ?
a) si oui, le résultat est "1"
b) si non, le résultat est celui de la première formule, en B1.

La conclusion : =SI(C1=0;CONCATENER(A1;" n'est pas un nombre premier.");CONCATENER(A1;" est un nombre premier."))

(fichier joint)

Question : jusqu'où peut-on aller ?
 

Pièces jointes

Excuse-moi du retard.
Dans la colonne A, tu listes tous les nombres premiers (l'exactitude de ma liste est à vérifier !)
Dans la colonne B, tu tapes le nombre recherché.
La colonne C t'indique s'il est premier ou non.
Je cherche plus simple, si je trouve je te le signale.
André.
 

Pièces jointes

En réalité, ce que je recherche, c'est écrire une formule qui me signale s'il existe un reste dans toutes les divisions d'un nombre par tous les nombres qui lui sont inférieurs, auquel cas il est premier, ou qu'une des divisions d'un nombre par tous les nombres qui lui sont inférieurs donne un reste égal à zéro, auquel cas il n'est pas premier.
Serait-ce faisable en vba ?

André.
 
3 515 621 et 221 861 023 par exemple sont, à mon avis, premiers.
Fichier joint allégé (48,5 Ko), étudiant les nombres de 1 à 3 500 000.
On peut dépasser ce nombre de 3 500 000 en copiant-collant les 2 dernières lignes.
La validité reste à vérifier.
 

Pièces jointes

Me revoilà avec une meilleure solution que ma première.
Dans l'exemple ci-joint, volontairement limité à 100 (taille fichier !), en introduisant un nombre dans la cellule E4, la cellule F4 signale si le nombre est premier, à défaut son plus grand dénominateur.
En modifiant la formule, on peut également afficher le plus petit dénominateur.
Pour tester, il suffit de recopier les formules en A50 et B50 jusqu'au bas de la feuille.
En reprenant dans une macro les formules de A1 à B3, et en créant une boucle sur les cellules A4 et B4, cette procédure devrait fonctionner à l'infini.
Par une procédure similaire il y a moyen de lister tous les dénominateurs d'un nombre.
En appliquant cette procédure sur deux nombres et en comparant les listes des dénominateurs, il y aurait moyen de retrouver le plus grand dénominateur commun.
Mais où sont donc passés mon ardoise et mon boulier compteur de ma jeunesse ?
André.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
9
Affichages
224
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
  • Question Question
XL pour MAC Calcul de notes.
Réponses
5
Affichages
732
Réponses
3
Affichages
689
Retour