Des nombres qui font bande à part

Bonjour à toutes et à tous,

Certains nombres pairs strictement positifs ne font pas partie des valeurs que l’indicatrice d’Euler peut prendre.

Peut-on consulter des articles concernant ces nombres ?

Merci d’avance.

Réponses

  • Bonjour.

    En voici déjà la liste (et la "quantité" d'articles répertoriés qui traitent de cela).

    À bientôt.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Ah, oui, c’est tout à fait ça, Dreamer !
    Merci beaucoup pour ton aide.

    Snegourotchka.
  • Pas de soucis.

    Je trouve personnellement qu'il y a peu d'articles sur cette suite (contrairement à la quantité d'articles sur ses sous-suites en progression arithmétique et qui respectent des conditions particulières, apparemment cela a semblé être une performance pour ceux qui l'ont fait).

    Je vais voir si je ne peux pas retrouver d'autres documents.
    J'en avais eu besoin à une époque pour me faire une idée précise de la conjecture de Carmichael.

    Cordialement.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Merci, Dreamer, c’est très gentil.
  • Bonsoir.

    Désolé pour l'attente, cela a été plus compliqué que prévu.

    Finalement, il n'y avait pas tant de choses que cela il y a 10 ans, mais j'ai toutefois retrouvé les quelques documents qui m'ont servis pour ma synthèse.

    Le premier, Theorie des groupes, ne m'a été utile pour le sujet que par sa page 22, mais il comporte d'autres éléments qui devraient être intéressants à lire, ne fut-ce que pour passer le temps.

    Le deuxième, FermatEuler, est un petit document que je ne retrouve plus sur la toile, en ce y compris son auteur, et cela m'embête assez bien car je me rappelle clairement avoir échangé quelques messages (sans doute sur un blog dorénavant fermé) car il utilisait des arguments de ce raisonnement sur les nombres de Fermat pour attaquer la conjecture de Carmichael, mais était coincé pour finaliser le résultat (la conjecture est encore irrésolue à ce jour).

    Le troisième, SemiPremier, était une vague explication liée à RSA, du même blog cité juste avant...

    Et le quatrième, article de Kevin Ford tiré d'ArXiV, est assez bien fourni en résultats sur l'indicatrice, notamment le paragraphe 7.3 parlant de la conjecture de Carmichael, mais il y a bien plus, malheureusement il est en anglais (et assez technique par endroits).

    A cela s'ajoute le "Elementary Number Theory", de Jones et Jones, aussi en anglais et présentant l'impossibilité pour l'indicatrice de valoir 14 comme exercice.

    Ce sont les seuls documents que j'ai retrouvé d'alors.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Sinon, en refaisant une recherche actuellement, je suis tombé sur cet autre article d'ArXiV que je donne essentiellement pour ces références bibliographiques, de cette façon tu pourras trouver les sources antérieures.

    En combinant tout cela avec ce qui se trouve sur l'OEIS, tu devrais pouvoir analyser la structure de ces nombres non indicateurs.

    À bientôt.

    [Édit : Aussi, je ne retrouve plus l'article de Derrick Lehmer (celui du test de Lucas-Lehmer) qui utilise quelques propriétés de l'indicatrice pour démontrer un comportement asymptotique sur le nombre de triplets de Pythagore primitifs inférieurs à une borne donnée, je vais continuer de le chercher car il est vraiment intéressant, à tel point que j'avais démarré sa traduction, mais je ne l'ai pas encore finie et j'ai égaré les feuilles, ce qui est vraiment dommage.
    Dès que je les retrouve, je finalise cette traduction et la posterai ici, cela risque d'être long.]

    [Édit2 : Par contre, en refaisant une recherche pour cet auteur, je suis tombé sur son article de 1932 discutant uniquement de l'indicatrice.
    Si je peux me permettre, malgré qu'il soit en anglais, je te conseille de lire cet article de seulement 7 pages avant d'ouvrir les autres.]

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Un tout grand merci, Dreamer !!
    J’ai un peu honte parce que ton travail est sérieux et que, moi, c’est juste pour préparer un petit jeu.
    Cela dit, mes préparatifs doivent être sérieux aussi :-).
    Alors, encore mille mercis !
  • Pas de blague.

    Tu ne me feras pas faire deux fois cette erreur là*.
    J'ai hâte de voir quel problème tu vas soumettre.
    N'hésites juste pas à donner suffisamment de contexte.

    À bientôt.

    *passer à côté des concepts non triviaux d'un "petit jeu" simplement car tu le fais ressembler à une énigme du style du calendrier mathématique.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Dreamer, je ne comprends pas vraiment ton dernier message, mais sois rassuré, ce ne sera qu’un jeu.
    Après les examens. Si Dieu me prête vie.
    « Tout vient à point à qui sait attendre » :-)
  • Bonjour.

    Je disais simplement que la fois dernière, j'étais passé à côté des enjeux (Frobénius) de ton précédent petit jeu (recherche des coefficients d'une équation diophantienne, je ne mets pas de lien, il est facile à retrouver) et que cette fois-ci je serais vigilant, rien de plus.

    Il n'est pas nécessaire de te mettre une quelconque pression, j'attendrais patiemment.

    À bientôt.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Ok, Dreamer, grand merci.

    Je possède une liste des 10.000 premiers nombres pairs « non indicateurs » (« non totient », en anglais).
    Quelqu’un en possède-il une liste plus longue ?
    (Une très longue liste de « totient » ferait également l’affaire.)
    Merci d’avance.
  • Bonsoir.

    Voici des idées pour lancer des calculs (en pièce jointe).

    Pour la petite anecdote, quand j'utilisais Matlab sur un vieux pc qui a rendu l'âme, cela m'avait juste pris quelques heures pour programmer quelque chose de propre pour avoir les totients jusqu'à 500000 (si mes souvenirs sont exacts, j'en avais tiré une liste de près de 135000 non totients) et c'était il y a près de 10 ans.
    Le problème est que je n'en ai plus rien car ce pc à rendu l'âme avec pertes et fracas.

    Matlab n'était là que parce que programmer en script est ultra facile quand tu ne cherches pas à optimiser.

    Il existe des solutions actuelles (pari/gp, maxima, voire python avec bibliothèque pour gagner du temps) qui permettent gratuitement et bien plus rapidement à mon avis d'aller plus loin encore.

    Par contre, si tu y es allergique car il te faut utiliser ton supercalculateur (dont tu ne m'as toujours pas dit si c'était bien une Sharp-EL 9600, au passage), cela risque d'être un peu plus long que quelques heures, et je me demande comment tu vas stocker la liste.

    À bientôt.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Encore merci, Dreamer, pour tous les liens que tu m’adresses !

    Ce que tu me dis là, à propos des programmes capables de lister les totients ou les non-totients me contraint à changer mes plans. Mais ce n’est pas grave. C’est peut-être même encore mieux.

    Ma calculatrice est une TI-92.
  • Bonjour,

    Voici un programme pour ordinateur qui calcule les non-totients pairs jusqu'à n=200000 exclus. Il y en a 61009. Sur l'ordinateur, ça prend 7 secondes. Je n'avais pas compris que c'était pour une calculatrice.

    [Edit: @AD, est-ce que tu sais pourquoi "boolean" s'affiche avec un B majuscule, alors que c'est un b minuscule ? Comment y remédier ?]
    public class Totient {
    
        static boolean premier(long p) {
    	long d;
    	for(d=2;d*d<=p;d++) {
    	    if(p%d==0) {
    		return false;
    	    }
    	}
    	return true;
        }
        
        public static void main(String [] args) {
    	boolean [] totient;
    	int n=200000;
    	int j;
    	int p,q;
    	long r;
    	totient= new boolean[n];
    	for(j=0;j<n;j++) {
    	    totient[j]=false;
    	}
    	totient[1]=true;
    	for(p=2;p<=n;p++) {
    	    if(premier(p)) {
    		for(q=n-1;q>0;q--) {
    		    if(totient[q]) { 
    			r=(long)q;
    			r=r*(long)(p-1);
    			while(r<n) {
    			    totient[(int)r]=true;
    			    r=r*p;
    			}
    		    }
    		}
    	    }
    	}
    	j=0;
    	for(q=2;q<n;q=q+2) {
    	    if(!totient[q]) {
    		j++;
    		System.out.println(q);
    	    }
    	}
    	System.out.println(j+" non-totients pairs");
        }
        
    }
    
    
  • Bonjour.

    En ce qui me concerne, j'ai fait une petite séquence bricolée en Maxima (enfin, j'ai surtout essayé d'utiliser les primitives de base qui sont dessus, je sollicite toute l'indulgence possible, c'est ma première tentative avec ce logiciel, toute amélioration de mon bricolage est la bienvenue) :
    L1:makelist(totient(i), i, 3, 3000000)$
    m:last(sort(L1))$
    r:2*floor(m/1.78107241799*(log(log(m*1.0)))+3/(log(log(m*1.0))))/2)$
    S1:setify(L1)$
    L2:2*makelist(i,i,1,floor(m/2))$
    S2:setify(L2)$
    S3:setdifference(S2, S1)$
    L3:listify(S3);
    

    Quelques explications :

    _ Faire la liste des totients jusqu'à une valeur donnée à été facile car la fonction totient est implémentée en maxima, par contre, cela donne la liste des valeurs renvoyées par phi, avec des doublons.

    _ C'est la raison pour laquelle, après avoir vainement tenté de faire le tri et supprimer les doublons, j'ai trouvé la primitive qui transforme une liste en ensemble (setify) et qui a le bon goût d'à la fois trier et supprimer les doublons.

    _ Il est facile de voir qu'il y a une fonction biscornue avec les log de log, c'est l'estimation optimale de la valeur minimum qui est renvoyée pour un nombre donné. Cela permet évidemment de savoir à partir de quand la liste constituée risque de ne plus être correcte (j'ai choisi 3000000 car le résultat de cette borne minimum était alors un peu supérieur à 500000, ce qui donne la taille de la liste, par une division par deux puisqu'il s'agit de nombres pairs).

    _ Comme le résultat est la liste des valeurs renvoyées par phi, il faut en extirper les valeurs qui ne s'y trouvent pas.
    Là aussi, après avoir vainement cherché comment manipuler les listes pour obtenir le résultat, sans succès, la primitive setdifference m'a finalement donné ce que je demandais.

    _ En tout, cette séquence prend, pour le nombre de valeurs demandées, moins d'une minute pour sortir les résultats (pour les voir afficher, il faut remplacer les dollars finaux par des points-virgules), attention que cela a saturé la mémoire d'affichage lors de certains tests que j'ai fais pendant que je réaffectais continuellement la même liste avec affichage, donc les dollars c'est plus qu'une simple précaution.

    Ce que j'en retire : A l'avenir, avant de conseiller une solution logicielle, je m'assurerais que ce que je propose tiens la route.
    Pour le cas d'espèce, cela m'a donné des sueurs froides toute cette débauche de traitements de listes et d'ensembles alors qu'une simple itération est, avec mon centième de pourcent de connaissances de ce logiciel, hors de ma maîtrise (et cela fait drôle de sentir qu'on ne maîtrise plus une bête itération).

    Concernant ta calculette, c'est effectivement très peu (j'imagine que ce n'est pas une 92-II ou une 92-plus).
    C'est à peine si tu pourrais stocker la liste de l'OEIS dessus.
    Ce n'est pas pour critiquer, elle a d'autres avantages, mais seulement 70ko de mémoire, c'est insuffisant pour avoir des "grandes" valeurs d'anti-indicatrice.
    D'une certaine façon, cela peut aussi être un challenge d'arriver à les générer, mais il ne faut pas avoir les yeux plus gros que le ventre.

    J'espère que tout cela ne va pas te démotiver et que tu poursuivras ton "petit jeu".

    Il y a encore pleins de choses à creuser sur cette fonction.

    À bientôt.

    Cherche livres et objets du domaine mathématique :

    Intégraphes, règles log et calculateurs électromécaniques.

  • Dreamer et marco,
    Une fois de plus, un tout grand merci pour vos interventions.

    Je remarque dans vos programmes la présence du mot « totient ».
    Est-ce que cela veut dire que pour construire la liste des non-totients, vous avez besoin des totients ?
    (D’après ce que tu écris au 4ème paragraphe de tes « Quelques explications », Dreamer, cela semble bien être le cas.)
  • Mon programme calcule la liste des totients compris entre $0$ et $n$ (exclus). Un totient s'écrit $p_1^{a_1-1}\cdots p_k^{a_k-1}(p_1-1) \dots (p_k-1)$. On coche d'abord le nombre $1$ dans un tableau de $n$ booléens. Pour tout $p$ premier compris entre $2$ et $n$, on parcourt avec $q$ le tableau de $n-1$ jusqu'à $1$, si $q$ est déjà coché, on coche $q(p-1)$, $qp(p-1)$, $qp^2(p-1)$, ..., $qp^a(p-1)$ tant que $qp^a(p-1)$ est plus petit que $n$.
    À la fin, on a la liste des totients.
    Cela évite de décomposer $i$ en facteur premier, ou de chercher les $j<i$ premiers avec $i$ pour calculer $\phi(i)$.
    (je ne sais pas si c'est plus rapide)
    On aurait peut-être pu faire cela avec une liste (au lieu d'un tableau), que l'on agrandit au fur et à mesure (en partant de la liste contenant seulement le nombre $1$).
  • Bonsoir,

    En creusant un peu le sujet, je m'aperçois que ma petite « découverte » concernant les nombres non totients figure déjà dans un article publié en 1991.
    Je m’en doutais un peu. Toujours est-il que cela m’oblige à changer mes plans.

    Quoi qu’il en soit, grand merci Dreamer et marco, pour votre gentille contribution à ce fil.
Connectez-vous ou Inscrivez-vous pour répondre.