• Aucun résultat trouvé

F F F F F F A320. ABSOLUMENT PREMIERS

N/A
N/A
Protected

Academic year: 2022

Partager "F F F F F F A320. ABSOLUMENT PREMIERS"

Copied!
3
0
0

Texte intégral

(1)

A320. ABSOLUMENT PREMIERS

Un nombre premier est dit « absolu » (NPA) si toute permutation de ses chiffres donne aussi un nombre premier (par exemple 13 et sa permutation 31).

Q1 : Démontrer qu'un NPA ne comporte jamais quatre chiffres distincts ou plus ni trois fois le chiffre x et deux fois le chiffre y, avec x différent de y.

Q2 : Pour les plus audacieux : démontrer qu'un NPA a au plus deux chiffres distincts.

Q3 : Dénombrer les NPA inférieurs à 1015

Source : d'après Olympiades de mathématiques en URSS.

Solution proposée par Claudio Baiocchi

Soit N un NPA. Les cas de N = 2 et N = 5 mis à part, seuls les chiffres 1, 3, 7 et 9 peuvent paraître dans N: la présence de tout autre chiffre, après permutation convenable, donne lieu à un nombre pair ou à un multiple de 5. Cela fixé, toute la discussion sera basée sur la divisibilité par 7.

Une famille

F

de nombres sera dite complète si les restes de la division par 7 des éléments de la famille donnent l’ensemble {0, 1, 2, 3, 4, 5, 6} tout entier. On remarquera que, pour tout nombre N et toute famille complète

F

, un au moins des nombres du type N+F avec F in

F

est un multiple de 7.

Un simple programme pour ordinateur montre que, pour tout triplet {a, b, c} de nombres distincts choisis dans {1, 3, 7, 9}, la famille

F

:= {abc, acb, bac, bca, cab, cba} est complète. En particulier si un tel triplet est inclus dans les chiffres d'un nombre N, parmi les permutations de N on trouve, pour M convenable, tous les nombres du type M * 103 + F avec F en

F

; donc au moins un nombre multiple de 7, ce qui entraine que N ne peut pas être un NPA. On a donc démontré la propriété Q2; la partie restante de Q1 s'obtient de façon analogue, grâce au fait que, pour tout couple {a,b} de nombres distincts choisis dans {1, 3, 7, 9}, est complète la famille

F

:= {aaabb, aabab, aabba, abaab, ababa, abbaa, baaab, baaba, babaa, bbaaa}.

Remarque. Des langages de programmation admettent des cycles du type «pour x dans {1, 3, 7, 9} ...». Si le langage utilisé n'admet pas de tels cycles les choses deviennent un peu plus compliquées,à moins que, comme dans le cas présent, la valeur de x n'intervient que modulo 7. Dans ce cas, puisque (modulo 7) on a 7=0 et 9=2, il suffit de faire le cycle «pour x allant de 0 à 3...»

Pour ce qui concerne la question Q3 on va séparer les cas en fonction du nombre de chiffres.On peut naturellement se borner aux nombres tels que les chiffres, de gauche à droite, paraissent en ordre non décroissant.

1. Un seul chiffre: 2, 3, 5 et 7.

2. Deux chiffres: on cherche parmi aa et ab avec a<b; on trouve uniquement 11, 13, 17, 37 et 79.

3. Trois chiffres: cherchant parmi aaa , aab et abb avec a<b on trouve 113, 199, 337.

4. Quatre chiffres et plus: bien que la stratégie des famille s complètes puisse être adaptée à bien de sous-cases, la façon la plus simple de traiter le problème est sans doute l’emploi d’un programme pour

(2)

ordinateur en faisant attention à choisir un langage qui permet de traiter des entiers d’au moins 16 chiffres (l’exemple suivant est écrit en JavaScript); le résultat est que aucun NPA n’existe dans ce rang.

---

<html><head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>Numbres Premiers Absolus</title>

</head><body>

<script type="text/javascript"><!-- function ppd(x){

// Pour tout argument x (avec x entier, x>1) ppd(x) est le Plus Petit Diviseur de x x=eval(x)

if( x <= 1 || x != Math.floor(x) ){

alert('function ppd: l\'argument vaut '+x+'; mais il doit être un entier > 1 !!');return 'No!' }

var r=Math.sqrt(x), q=2, y if( x % 2 == 0 ) { return 2 } if( x % 3 == 0 ) { return 3 } if( x % 5 == 0 ) { return 5 } for( y=7; y<=r; y+=q ) {

q = 6-q ; if( x % y == 0 ){ return y } }

return x }

function estPremier(x){ return x==ppd(x) } function npa(x,y,nc){

// Pour nc chiffres, toutes égales à y, sauf une qui vaut x var j, k, n

for(j=0;j<nc;j++){

n=0; for(k=0;k<nc;k++) {n*=10;n+=(k==j)?x:y}

(3)

if( !estPremier(n) ) return 0 }

return n }

var s='1', z

for(numC=2;numC<18;numC++) {

document.write('<br>Nombre de chiffres = '+numC.toString()+'<br>') s+='1'; if(estPremier(s)) {document.write(s+'; ')}

z=npa(1,3,numC); if(z>0) {document.write(z.toString()+'; ')}

z=npa(1,7,numC); if(z>0) {document.write(z.toString()+'; ')}

z=npa(1,9,numC); if(z>0) {document.write(z.toString()+'; ')}

if(numC>2) {

z=npa(3,1,numC); if(z>0) {document.write(z.toString()+'; ')}

}

z=npa(3,7,numC); if(z>0) {document.write(z.toString()+'; ')}

if(numC>2) {

z=npa(7,1,numC); if(z>0) {document.write(z.toString()+'; ')}

}

if(numC>2) {

z=npa(7,3,numC); if(z>0) {document.write(z.toString()+'; ')}

}

z=npa(7,9,numC); if(z>0) {document.write(z.toString()+'; ')}

document.write('<br>') }

//--></script>

</body></html>

Références

Documents relatifs

Tu écris une phrase avec ton stylo.. Le phasme est un insecte qui vit dans

[r]

[r]

Complète le tableau des valeurs et trace la représentation graphique de la fonction f.. Complète le tableau des valeurs et trace la représentation graphique de la

Complète le tableau des valeurs et trace la représentation graphique de la fonction f.. Complète le tableau des valeurs et trace la représentation graphique de la

Complète le tableau des valeurs et trace la représentation graphique de la fonction f.. Complète le tableau des valeurs et trace la représentation graphique de la

[r]

 Entraînement 1 coche dans chaque cas les