/*************************************************************************************************************************************/ /* */ /* F A C T O R I S A T I O N D E S N O M B R E S E N T I E R S : */ /* */ /* */ /* Author of '$xtc/factorisation.01$c' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20220331120632). */ /* */ /*************************************************************************************************************************************/ #include <stdio.h> #define NOMBRE \ 200 \ /* Nombre de nombres premiers a calculer... */ #define STORE(n) \ { \ ListeDesNombresPremiers[IndexDesNombresPremiers]=n; \ IndexDesNombresPremiers++; \ } main() { int IndexDesNombresPremiers=0; int ListeDesNombresPremiers[NOMBRE]; int NombreEntierCourant; STORE(2); NombreEntierCourant=ListeDesNombresPremiers[IndexDesNombresPremiers-1]+1; while (IndexDesNombresPremiers <= NOMBRE) { int index; int EstPremier=0; for (index=0 ; index<=IndexDesNombresPremiers-1 ; index++) { if ((NombreEntierCourant % ListeDesNombresPremiers[index]) == 0) { EstPremier=1; } else { } } if (EstPremier == 0) { STORE(NombreEntierCourant); } else { } NombreEntierCourant=NombreEntierCourant+2; } IndexDesNombresPremiers--; for (NombreEntierCourant=2 ; NombreEntierCourant <= NOMBRE ; NombreEntierCourant++) { int index; int quotient=NombreEntierCourant; int NombreTotalFacteursPremiers=0; int NombreFacteursPremiersDifferents=0; printf("%d = ",NombreEntierCourant); for (index=0 ; index <= IndexDesNombresPremiers ; index++) { int exposant=0; if (quotient >= ListeDesNombresPremiers[index]) { while ((quotient % ListeDesNombresPremiers[index]) == 0) { if (exposant == 0) { if (NombreTotalFacteursPremiers > 0) { printf("x"); } else { } printf("(%d",ListeDesNombresPremiers[index]); NombreFacteursPremiersDifferents++; } else { } quotient = quotient / ListeDesNombresPremiers[index]; NombreTotalFacteursPremiers++; exposant++; } if (exposant > 0) { if (exposant > 1) { printf("^%d",exposant); } else { } printf(")"); } else { } } else { } } printf("\t\t#[%d,%d]\n",NombreTotalFacteursPremiers,NombreFacteursPremiersDifferents); } }