Cookie Consent byPrivacyPolicies.comUne formule qui pue le soufre👹👹👹👹👹 - Eugenol

Une formule qui pue le soufre👹👹👹👹👹

Grifix-Gezucri

12/07/2025 à 09h41

De 2 Miliards à 4,2 Milliards

#include
#include
#include

int main() {
unsigned int val, rep,aff=0;
printf("\n(Programme Grifix - recherche des nombres premiers optimisé)\nInsérez la valeur sup de vos nombres : ");
scanf("%u", &val);

// Allocation de mémoire pour le tableau de bits
unsigned char *Tab = (unsigned char *)calloc((val + 7) / 8, sizeof(unsigned char));
if (Tab == NULL) {
printf("Erreur d'allocation de mémoire\n");
return 1;
}
unsigned int X = 3;
unsigned int nombre_de_premiers = 1; // On compte '2' comme premier
time_t debut = time(NULL);

// Parcours des nombres impairs pour marquer les non-premiers
for (X = 3; X * X <= val; X += 2) {
// Si X est un nombre premier (non marqué)
if (!(Tab[X / 8] & (1 << (X % 8)))) {
// Marquer les multiples impairs de X à partir de X*X
for (unsigned int n = X * X; n < val; n += 2 * X)
{
Tab[n / 8] |= (1 << (n % 8));
}
}
}

// Calcul du nombre de premiers
for (unsigned int i = 3; i < val; i += 2) {
if ((Tab[i / 8] & (1 << (i % 8))) == 0) {
nombre_de_premiers++;
}
}

time_t fin = time(NULL);
printf("\nTemps de recherche : %ld secondes\n", fin - debut);
printf("On a trouvé %d nombres premiers\n", nombre_de_premiers);
printf("Afficher les nombres premiers ? oui = 1,non=0 \t");
scanf("%d", &rep);
if (rep == 1)
{
for (unsigned int i = 3; i < val; i += 2) {
if ((Tab[i / 8] & (1 << (i % 8))) == 0) {
if ((aff++)%10==0) { printf("\n"); }
printf("\t %d",i) ;
}
}
}

free(Tab); // Libération de la mémoire allouée
return 0;
}

Dlnphef132jn1mwf1nck51shs4r0 - Eugenol
8h9wew7dkk2fjvu1v2q0o4ufkbzx - Eugenol

12