JE Maxfield a démontré le théorème suivant (voir DOI: 10.2307 / 2688966 ):
Si est un entier positif à chiffres, il existe un entier positif tel que les premiers chiffres de constituent l'entier .
Défi
Détails
- N ! = 1 ⋅ 2 ⋅ 3 ⋅ … ⋅ N Nreprésente la factorielle de .
- Les chiffres de dans notre cas sont compris dans la base .
- Votre soumission devrait fonctionner pour arbitraire avec suffisamment de temps et de mémoire. Il ne suffit pas d'utiliser par exemple des types 32 bits pour représenter des nombres entiers.
- Vous n'avez pas nécessairement besoin de produire le moins de possible .
Exemples
A N
1 1
2 2
3 9
4 8
5 7
6 3
7 6
9 96
12 5
16 89
17 69
18 76
19 63
24 4
72 6
841 12745
206591378 314
Le moins possible pour chaque se trouve dans https://oeis.org/A076219
Réponses:
Python 2 , 50 octets
Essayez-le en ligne!
Il s'agit d'une variante de la solution de 47 octets expliquée ci-dessous, ajustée pour revenir
1
en entrée'1'
. (À savoir, nous ajoutons1
à l'expression complète plutôt qu'à l'appel récursif, et commençons à compter à partir den==2
pour supprimer une couche de profondeur, en équilibrant le résultat pour toutes les non-'1'
entrées.)Python 2 , 45 octets (cartes 1 à
True
)Ceci est une autre variation, par @Jo King et @xnor, qui prend l'entrée comme un nombre et retourne
True
pour l'entrée1
. Certaines personnes pensent que c'est un jeu équitable, mais personnellement, je le trouve un peu bizarre.Mais cela ne coûte que 3 octets pour encapsuler le résultat booléen icky
+()
, ce qui nous donne une solution "sympa" plus courte:Python 2 , 48 octets
la source
+1
toute façon.a
un nombre.-a
dans-p
'', c'est une bonne astuce :)Brachylog ,
35 octetsEssayez-le en ligne!
Prend l'entrée par le biais de sa variable de sortie et sort par le biais de sa variable d'entrée. (Dans l'autre sens, il trouve simplement des préfixes arbitraires de la factorielle de l'entrée, ce qui n'est pas aussi intéressant.) Délai d'attente avant-dernier test sur TIO, mais convient parfaitement au dernier . Je l'ai exécuté sur 841 sur mon ordinateur portable pendant plusieurs minutes au moment de la rédaction de ce document, et il n'a pas encore craché de réponse, mais j'y crois.
Puisque la seule entrée
ḟa₀
ne fonctionne pas pour 1, et 1 est un préfixe positif de 1! = 1,1|ḟa₀
fonctionne aussi bien.De plus, à la date de cette modification, 841 fonctionne depuis près de trois heures et n'a toujours pas produit de sortie. Je suppose que le calcul de la factorielle de chaque entier de 1 à 12745 n'est pas exactement rapide.
la source
C ++ (gcc) ,
10795 octets, en utilisant-lgmp
et-lgmpxx
Merci aux personnes dans les commentaires d'avoir signalé quelques mésaventures idiotes.
Essayez-le en ligne!
Calculeen multipliantpar , puis le divise à plusieurs reprises par jusqu'à ce qu'il ne soit plus supérieur à l'entier passé. À ce stade, la boucle se termine si la factorielle est égale à l'entier passé, ou passe au suivant sinon.n! (n−1)! n 10 n
la source
107
octets.return
?Gelée , 8 octets
Essayez-le en ligne!
Prend un entier et retourne un singleton.
la source
05AB1E , 7 octets
Essayez-le en ligne ou vérifiez-presque tous les cas de test ( expire
841
, donc est exclu).Explication:
la source
Pyth - 8 octets
Essayez-le en ligne .
la source
JavaScript,
4743 octetsSortie en tant que BigInt.
Essayez-le en ligne!
Vous avez économisé quelques octets en adoptant l'approche de Lynn consistant à "construire" la factorielle plutôt que de la calculer à chaque itération, veuillez également voter pour sa solution si vous votez pour celle-ci.
la source
_Ês bU}f1
dans Japt ne fonctionne pass
.1
si0
peut être retournén=1
.x=i=1n;f=n=>`${x*=++i}`.search(n)?f(n):i
C # (.NET Core) , 69 + 22 = 91 octets
Essayez-le en ligne!
Utilisations
System.Numerics.BigInteger
qui nécessitent uneusing
déclaration.-1 octet grâce à @ExpiredData!
la source
Gelée , 16 octets
Essayez-le en ligne!
Explication
la source
Perl 6 , 23 octets
Essayez-le en ligne!
Explication
la source
Charbon de bois , 16 octets
Essayez-le en ligne! Le lien est vers la version verbeuse du code. Explication:
Poussez
1
vers la liste vide pour qu'elle démarre avec un produit défini.Répétez l'opération si l'entrée est introuvable au début du produit de la liste ...
... repousser la longueur de la liste à elle-même.
Imprime la dernière valeur poussée dans la liste.
la source
Perl 5
-Mbigint -p
, 25 octetsEssayez-le en ligne!
la source
J ,
2822 octets-6 octets grâce à FrownyFrog
Essayez-le en ligne!
réponse d'origine J , 28 octets
Essayez-le en ligne!
>:@] ... x:@1
en commençant par une précision étendue1
, continuez à l'incrémenter tout en ...-.@
ce n'est pas le cas que ...{.@
le premier orme est un match de départ de ...E.&":
toutes les correspondances de sous-chaîne (après avoir vérifié les deux arguments&":
) de la recherche de l'entrée d'origine dans ...!
la factorielle du nombre que nous incrémentonsla source
(]+1-0{(E.&":!))^:_&1x
C (gcc) -lgmp, 161 octets
Essayez-le en ligne!
la source
strstr(b=mpz_get_str(0,10,_),a)-b;mpz_mul(_,_,n))mpz_add_ui(n,n,1)
place deb=mpz_get_str(0,10,_),strstr(b,a)-b;mpz_add_ui(n,n,1),mpz_mul(_,_,n))
Python 3 , 63 octets
Essayez-le en ligne!
-24 octets grâce à Jo King
-3 octets grâce à Chas Brown
la source
f=
que le que vous avez dans l'en-tête est censé compter pour votre nombre de bits.Gelée , 11 octets
Essayez-le en ligne!
la source
Nettoyer , 88 octets
Essayez-le en ligne!
Définit
$ :: Integer -> Integer
.Utilise
Data.Integer
les entiers de taille arbitraire pour IO.la source
Wolfram Language (Mathematica) , 62 octets
Essayez-le en ligne!
la source
Rubis , 40 octets
Essayez-le en ligne!
la source
Icône ,
6563 octetsEssayez-le en ligne!
la source
Haskell, 89 octets
Si quelqu'un sait comment contourner l'importation requise, faites-le moi savoir.
la source