Cookie Consent byPrivacyPolicies.comCrible de Mathiascevitch.cxx - Eugenol

Crible de Mathiascevitch.cxx

Avatar transparent iqadnc - Eugenol
adhoc

27/11/2023 à 08h36

Moi aussi, super content de te relire. Je pense que ta date est en novembre 2153, tu as mal du lire.
Jusqu'a aujourshui pas encore attrappé le Covid. Au bout de 6 injection, on est peut etre reellement immunisé :-))
En tout cas, c'est tres bien pour eviter les formes graves.


Grifix-Gezucri

27/11/2023 à 09h51

adhoc écrivait:
-----
> Moi aussi, super content de te relire. Je pense que ta date est en novembre
> 2153, tu as mal du lire.
> Jusqu'a aujourshui pas encore attrappé le Covid. Au bout de 6 injection, on est
> peut etre reellement immunisé :-))
> En tout cas, c'est tres bien pour eviter les formes graves.

Un Covid en plein 11 Nov 2023 , j’ai eu qq jours d’incertitude ....... ça pouvait finir dans le fossé. Heureusement j’ai fini les gros travaux la veille même. Merci à toi!


Grifix-Gezucri

12/12/2023 à 06h30

Un et Sn étant des suites arithmétiques
L’ensemble P des nombres premiers est l’ensemble des X tel que pour a € Z* et n € N* on a :
P = { X = | (6a - 1) | } + { 2 , 3 } - { Un = X(6n + 1)} - { Sn = X(6n -1)}


Avatar transparent iqadnc - Eugenol
adhoc

12/12/2023 à 09h10

C'est super élégant. je pense qu'il faut mieux definir a , par exemple a est de la forme a---> a+1 a chaque itération. Intuitiverment , j'aurais ecrit aussi dans le domaine de définition: n >= 0 au lieu de n different de 0.


Grifix-Gezucri

12/12/2023 à 09h25

J’ai fait une correction plus haut, regarde bien.
Je pense avoir raison ......tu devrais essayer de tester au crayon tu verras.
Je te laisse je vais voir mon dentiste :))))) .......A+
Je pense même qu’on pourrait simplifier les 2 suites en une seule !!!!!
 { X = | (6a - 1) | } donne TOUTE la série 5 7 11 13 17 19 etc etc.
{ Un = X(6n + 1)} et { Sn = X(6n -1)} donne TOUS les multiples de ces nombres.
A suivre donc.
Ciao!


Avatar transparent iqadnc - Eugenol
adhoc

12/12/2023 à 09h34

Oui je l'avais deja fait avec ton algo passé et c'etait bon. La, je vais en erffet repasser ta formule au crayon pendant mes vacances. Superbe. Tres classe.


Grifix-Gezucri

12/12/2023 à 14h13

Finalement on peut faire encore plus court :

L’ensemble P des nombres premiers est l’ensemble des X tel que pour :
a € Z* et
n € Z* on a
P = { X = | (6a -1)| } + { 2 , 3 } - S={ Un = X × [ |(6n - 1)| ]}
Avec Un étant une suite arithmétique
La formulation mathématique n’est pas carrée mais juste et vérifiée sur un site scientifique


Grifix-Gezucri

23/12/2023 à 15h33

Le programme ci dessous marche mais j’ai un pb de mémoire à priori . Il m’affiche "Segmentation Fault" si j’entre une valeur au dessus de 45001 environ.
Assez simple finalement, c’est une base de travail :)))
Compilateur c :

https://play.google.com/store/apps/details?id=ru.iiec.cxxdroid

#include stdio.h mettre des < >
#include stdlib.h
#include math.h
#include conio.h
#include time.h
#include new

int main(int argc, char *argv[])
{
int x, compteur=0;
printf(" Nombres premiers entre [5....x] , entrez une valeur pour x : ");
scanf(" %d", &x);
const int val = x;
bool * T = new bool [val];
for(int i=6; i<=x; i = i+6)
{
for(int j = i -1 ; (i-1)*j<=x; j = j+6)
{
T[(i-1)*j] = 1;
if ( (i+1)*j <= x )
{
T[(i+1)*j] = 1;
}
}
for(int j = i+1 ; (i-1)*j<=x; j = j+6)
{
T[(i-1)*j] = 1 ;
if ( (i+1)*j <= x )
{
T[(i+1)*j] = 1;
}
}
}

for(int i=6; i<=x; i = i+6)
{
if (T[i-1]== 0)
{
printf("\n % d est premier", i-1);
compteur++;
}
if (T[i+1]== 0)
{
printf("\n %d est premier", i+1);
compteur++;
}
}
}

2y0f87ctmqx2jmctm6r9b5sbg8lb - Eugenol

Grifix-Gezucri

24/12/2023 à 16h58

Bonne Année mon vieil adhoc !!!!

#include stdio.h
#include stdlib.h
#include time.h
#include new


int main(int argc, char *argv[])
{
int x,val,test,sortie,comptageNP=0;
printf(" Nombres P entre [5....x[ ,entrez une valeur pour x ");
scanf("%d", &val);
bool * Tableau = new bool [val];
printf(" \n\n\n");
time_t debut = time(NULL);
x = val - (val % 6);

for ( int i = 6; i <=x; i= i+6)
{
int a = i - 1;
int b = i + 1;
for(int i=6; a*(i-1)<=x; i = i+6)
{
if (a*(i-1) <= x)
{
Tableau[a*(i-1)]=1;
}

if( a*(i+1) <=x)
{
Tableau[a*(i+1)] =1;
}

if( b*(i+1) <=x)
{
Tableau[b*(i+1)] =1;
}

if( b*(i+5) <=x)
{
Tableau[b*(i+5)] =1;
}
}
}

for ( int i= 6; i<=x; i= i+6)
{
if (Tableau[i-1] ==0)
{
comptageNP++;
}
if (Tableau[i+1] ==0)
{
comptageNP++;
}
}

time_t fin = time(NULL);
printf (" \n\n Temps de recherche : %d secondes %d nombres premiers trouvés sur une recherche de 5 à %d", fin- debut,comptageNP,val);
boucle:
system("cls");
printf("\n\n\n tester la primalité d’un nombre ou entrez 0 pour sortir : ");
scanf("%d", &test);
system("cls");
if (test == 0)
{
delete [] Tableau;
return (1);
}
else if ( test == 2 || test ==3 )
{
printf("\n le nombre %d est premier",test);
goto boucle;
}
else if (test % 2 ==0 || test % 3 ==0 || Tableau[test]==1)
{
printf("\n le nombre %d est composé",test);
goto boucle;
}
else
{
printf (" le nombre %d est premier",test);
goto boucle;

}
}

Bddt6y8pl1gq7n0jbvc2o095s5r5 - Eugenol