Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
treize plus sept
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Retour

Résumé de la discussion (messages les plus récents en premier)

Glozi
Aujourd'hui 16:53:01

Bonjour,
Merci pour l'amusement,
Avec un code naïf j'arrive à aller jusqu'à 8 chiffres en base 10 (et ça prend plusieurs minutes dont une bonne partie pour faire un crible et trouver les nombres premiers).

j'obtiens

Avec 2 chiffres, maximum = 3 [23, 37, 53, 73]
Avec 3 chiffres, maximum = 6 [373]
Avec 4 chiffres, maximum = 9 [1373, 3137, 3373, 3733, 3797]
Avec 5 chiffres, maximum = 13 [31373, 37337]
Avec 6 chiffres, maximum = 17 [337397, 373373, 373379]
Avec 7 chiffres, maximum = 22 [3733797]
Avec 8 chiffres, maximum = 26 [20037337, 30373379, 37337397, 70373379]

En regardant les premiers nombres on se dit qu'il est peut-être possible d'obtenir un max avec $n+1$ chiffres en choisissant bien un max avec $n$ chiffres et en lui collant un chiffre bien choisi à droite. Ex : 37 -> 373 -> 3733 -> 37337 -> 373379 -> 3733797 mais cela s'écroule à partir de  8 chiffres. De même en regardant les premiers résultats on a l'impression qu'il n'y aura essentiellement que des chiffres impairs dans les nombres obtenus. Mais pour 8 chiffres on trouve par exemple 20037337 avec 3 chiffres pairs (dont deux zéros qui ne sont pas premiers...).

Bref une belle machine à détruire les conjectures !

code

##input
B=10 # base
N=6 #nb chiffres

from time import time


t1=time()
#crible
print("calcul des nombres premiers...")
P=[True for i in range(B**N)]
P[0]=False
P[1]=False
for i in range(len(P)):
    if P[i]:
        for j in range(2*i,len(P),i):
            P[j]=False

print("...crible terminé.")

L=[None for i in range(B**N)]
for i in range(B):
    L[i]=1 if P[i] else 0

for n in range(N-1):
    maxgen=0
    candidats=[]
    for u in range(B**n, B**(n+1)): #u a n+1 chiffres
        for digit in range(B):
            nouv=u*B+digit #nouv a n+2 chiffres
            tot=0
            for k in range(n+2):
                if P[B*(u%B**k)+digit]:
                    tot+=1
            L[nouv]=L[u]+tot
            if L[nouv]>maxgen:
                maxgen=L[nouv]
                candidats=[nouv]
            elif L[nouv]==maxgen:
                candidats.append(nouv)
    print("Avec", n+2, "chiffres, maximum =", maxgen, candidats)

t2=time()
print("durée : ", t2-t1)
 

Bonne journée

Ernst
Hier 18:29:04

Amis des défis amusants, bonjour.

Tiens, rigolo, pour un nombre de chiffres donnés, il s'agit de trouver un nombre qui contient le plus de 'sous-nombres' premiers - des nombres formés de chiffres consécutifs.

Exemple

1373
Sous-nombre | Premier ?
--------------------
1          | Non
3          | Oui
7          | Oui
3          | Oui
13         | Oui
37         | Oui
73         | Oui
137        | Oui
373        | Oui
1373       | Oui
--------------------
4 chiffres, 9 nombres premiers

31373
Sous-nombre | Premier ?
--------------------
3          | Oui
1          | Non
3          | Oui
7          | Oui
3          | Oui
31         | Oui
13         | Oui
37         | Oui
73         | Oui
313        | Oui
137        | Oui
373        | Oui
3137       | Oui
1373       | Oui
31373      | Non
--------------------
5 chiffres, 13 nombres premiers

Pied de page des forums