Inspiré par cette entrée Numberphile
Contexte
Les nombres de distance de cube d'un entier n sont définis ici comme l'ensemble des entiers qui sont à une distance de x³ pour un x donné . Pour un exemple simple, avec n=100
et x=2
, les nombres de distance de cube sont {92,108}
.
Cela peut être étendu à un ensemble plus grand en faisant simplement varier x . Avec x ∈ {1,2,3,4}
et le même n=100
, nous avons l'ensemble résultant {36,73,92,99,101,108,127,164}
.
Définissons CD (n, x) comme l'ensemble de tous les entiers n ± z³
avec z ∈ {1,2,3,...,x}
.
Nous pouvons maintenant nous concentrer sur certaines des propriétés spéciales de ces nombres de distance de cube . Parmi les nombreuses propriétés spéciales que les nombres peuvent avoir, les deux propriétés qui nous intéressent ici sont la primauté et les diviseurs premiers .
Pour l'exemple CD ci-dessus (100,4) , notez qu'ils 73, 101, 127
sont tous premiers. Si nous les supprimons de l'ensemble, nous nous retrouvons avec {36,92,99,108,164}
. Tous les diviseurs premiers de ces nombres sont (dans l'ordre) {2,2,3,3,2,2,23,3,3,11,2,2,3,3,3,2,2,41}
, ce qui signifie que nous avons 5 diviseurs premiers distincts {2,3,23,11,41}
. On peut donc définir que CD (100,4) a la corvée 1 de 5
.
Le défi ici est d'écrire une fonction ou un programme, dans le moins d'octets, qui génère la ravenity d'une entrée donnée.
Contribution
- Deux entiers positifs
n
etx
dans n'importe quel format pratique.
Production
- Un entier unique décrivant la ravenity des deux nombres d'entrée, lorsqu'il est calculé avec CD (n, x) .
Règles
- L'entrée / sortie peut se faire via n'importe quelle méthode appropriée .
- Des restrictions standard contre les échappatoires s'appliquent.
- Pour faciliter le calcul, vous pouvez supposer que les données d'entrée seront telles que CD (n, x) n'aura que des nombres positifs dans l'ensemble (c'est-à-dire qu'aucun CD (n, x) n'aura jamais de nombres négatifs ou zéro).
- La fonction ou le programme doit être en mesure de gérer les numéros d'entrée de manière à ce qu'ils
n + x³
correspondent au type de données entier natif de votre langue. Par exemple, pour un type entier signé 32 bits, tous les numéros d'entrée avecn + x³ < 2147483648
sont possibles.
Exemples
n,x - output
2,1 - 0 (since CD(2,1)={1,3}, distinct prime divisors={}, ravenity=0)
5,1 - 2
100,4 - 5
720,6 - 11
Notes de bas de page
1 - Ainsi nommé car nous ne nous intéressons pas à la cardinalité de l'ensemble, mais à un type d'oiseau différent. Puisque nous avons affaire à des diviseurs "communs", j'ai choisi d'utiliser le corbeau commun .
100,4
donne 5? Les nombres de distance de cube de cet ensemble sont36,164
, et les facteurs premiers de cet ensemble sont2,3,41
(puisque les facteurs de cet ensemble sont{2, 3, 4, 6, 9, 12, 18, 36}
et{2, 4, 41, 82, 164}
, respectivement). Par conséquent, la sortie doit être de 3, pas de 5.100,4
est l'exemple expliqué par l'OP dans la section Contexte. Votre erreur semble être que vous devriez considérer tout1..x
, donc[1,2,3,4]
pour ce cas.Réponses:
Gelée, 16 octets
Prend x et n comme arguments de ligne de commande, dans cet ordre. Essayez-le en ligne!
Comment ça fonctionne
la source
Pyth -
211918 octetsJe me demande s'il y a un truc.
Suite de tests .
la source
Julia, 107 octets
Il s'agit d'une fonction qui accepte deux entiers et renvoie un entier.
Non golfé:
la source
05AB1E ,
2019 octetsCode:
Entrée sous la forme
x
,n
. Utilise l' encodage CP-1252 .Essayez-le en ligne!
la source
MATL , 21 octets
L'entrée est
x
,n
séparée par une nouvelle ligne.Essayez-le en ligne!
Explication
la source
J, 30 octets
Il s'agit d'un verbe dyadique, utilisé comme suit:
Essayez-le ici.
Explication
la source
@:+(
pourquoi si triste, un mec génial?Python 3.5,
218198 octets:( Merci à @Blue de m'avoir sauvé 20 octets.)
Une belle fonction lambda à une ligne, même si elle peut être un peu longue. Depuis que j'utilisais Python, j'ai dû trouver ma propre façon de trouver les composites pour la première étape, puis les diviseurs principaux pour la dernière étape, donc ce n'était pas très facile, et ce fut le plus court moi-même, par moi-même . pourrait y arriver. Néanmoins, il fait ce dont il a besoin et j'en suis fier. :) Cependant, tous les conseils pour jouer au golf un peu plus sont les bienvenus.
la source
PARI / GP , 79 octets
Voici ma mise en œuvre simple et originale. La version optimisée ci-dessus combine les deux vecteurs en un seul vecteur légèrement plus compliqué.
la source
f
(commef=(n,x)->...
), vous pouvez le tester avecf(100,4)
. Alternativement, vous pouvez l'invoquer en une seule ligne avec((n,x)->...)(100,4)
.Rubis, 138 octets
Ce fut un jeu de mots y défi. :-)
la source
Rubis,
132120114 octetsJe suis bien conscient que cette solution nécessite encore beaucoup de golf. Tous les conseils de golf sont les bienvenus.
Ungolfing:
la source
Python 3.5 -
177175159 octetsTous les conseils de golf sont les bienvenus :)
Non golfé:
la source
Wolfram Language (Mathematica) , 90 octets
Essayez-le en ligne!
sans golf: le code est lu principalement de droite à gauche,
la source