La somme des carrés des dix premiers nombres naturels est,
Le carré de la somme des dix premiers nombres naturels est,
Par conséquent, la différence entre la somme des carrés des dix premiers nombres naturels et le carré de la somme est
Pour une entrée n donnée, trouvez la différence entre la somme des carrés des n premiers nombres naturels et le carré de la somme.
Cas de test
1 => 0
2 => 4
3 => 22
10 => 2640
24 => 85100
100 => 25164150
Ce défi a été annoncé pour la première fois lors du projet Euler # 6 .
Critères gagnants
Il n'y a pas de règles sur ce que devrait être le comportement avec une entrée négative ou nulle.
La réponse la plus courte l'emporte.
n
?Réponses:
Gelée ,
54 octetsEssayez-le en ligne!
Comment?
la source
Python 3 ,
2827 octets-1 grâce à xnor
Essayez-le en ligne!
Met en œuvren(n−1)(n+1)(3n+2)/12
Python 2,
2928 octets:lambda n:(n**3-n)*(3*n+2)/12
la source
n*~-n**2*
ou(n**3-n)*
.APL (Dyalog Unicode) , 10 octets
Essayez-le en ligne!
Comment ça fonctionne
Utilise le fait que "carré de somme" est égal à "somme de cubes".
la source
(1⊥⍳×⍳×1-⍨⍳)10
.TI-Basic (série TI-83),
1211 octetsInstruments( n22) (12+ 13 n) . Prend l'entrée
Ans
: par exemple, exécutez10:prgmX
pour calculer le résultat pour l'entrée10
.la source
nCr
!Brain-Flak ,
74726864 octetsEssayez-le en ligne!
Un moyen assez simple de le faire avec quelques changements délicats. J'espère que quelqu'un trouvera d'autres astuces pour raccourcir la durée.
la source
Fusain ,
1210 octetsEssayez-le en ligne! Le lien est vers la version détaillée du code. Explication:( ∑n1x )2= ∑n1X3 donc ( ∑n1x )2- ∑n1X2= ∑n1( x3- x2) = ∑n1( x - 1 ) x2= ∑n - 10x ( x + 1 )2 .
la source
Perl 6 , 22 octets
Essayez-le en ligne!
Utilise la construction∑ni=1(i2(i−1))
la source
Japt
-x
,9854 octetsEssayez-le
Explication
la source
JavaScript, 20 octets
Essayez-le en ligne
la source
APL (Dyalog), 17 octets
(Beaucoup plus long) Réponse de Jelly du Port de Jonathan Allan.
Essayez-le en ligne!
la source
+/¯1↓⍳×1⌽⍳×⍳
APL (Dyalog) , 16 octets
Essayez-le en ligne!
la source
(+/×⍨)
→1⊥×⍨
selon la pointe .⍳
intérieur(×⍨1⊥⍳)-⍳+.×⍳
Mathematica,
2117 octets-4 octets grâce à alephalpha .
Fonction pure. Prend un entier en entrée et renvoie un entier en sortie. Implémente simplement le polynôme, car
Sum
s,Range
s,Tr
s, etc. prennent beaucoup d'octets.la source
(3#+2)(#^3-#)/12&
#.(#^2-#)&@*Range
implémente une autre solution courante. (Mais il est aussi 17 octets). Et nous pouvons mettre en œuvre l'algorithme naïf dans 18 octets:Tr@#^2-#.#&@*Range
.Java (JDK) , 23 octets
Essayez-le en ligne!
la source
dc , 16 octets
Essayez-le en ligne!
la source
05AB1E , 8 octets
Explication:
Essayez-le en ligne!
la source
LDnOsOn-
était ma première tentative aussi.C, C ++,
464037 octets (#define),504746 octets (fonction)-1 octet grâce à Zacharý
-11 octets grâce au plafond
Version macro:
Version de fonction:
Ces lignes sont basées sur ces 2 formules:
Somme des nombres entre 1 et n =
n*(n+1)/2
Somme des carrés entre 1 et n =
n*(n+1)*(2n+1)/6
Donc, la formule pour obtenir la réponse est simplement
(n*(n+1)/2) * (n*(n+1)/2) - n*(n+1)*(2n+1)/6
Et maintenant, pour "optimiser" le nombre d'octets, nous cassons les parenthèses et déplaçons les choses, tout en le testant donne toujours le même résultat
(n*(n+1)/2) * (n*(n+1)/2) - n*(n+1)*(2n+1)/6
=>n*(n+1)/2*n*(n+1)/2 - n*(n+1)*(2n+1)/6
=>n*(n+1)*n*(n+1)/4 - n*(n+1)*(2n+1)/6
Remarquez le modèle
p = n*n+1 = n*n+n
, donc dans la fonction, nous déclarons une autre variableint p = n*n+n
et elle donne:p*p/4 - p*(2n+1)/6
Pour
p*(p/4-(2*n+1)/6)
et ainsin*(n+1)*(n*(n+1)/4 - (2n+1)/6)
, cela fonctionne seulement la moitié du temps, et je soupçonne que la division entière est la cause (f(3)
donnant 24 au lieu de 22,f(24)
donnant 85200 au lieu de 85100, donc nous ne pouvons pas factoriser la formule de la macro de cette façon, même si mathématiquement c'est le même.La version macro et la fonction sont ici en raison de la substitution de macro:
F (3) donne
3*3*(3+1)*(3+1)/4-3*(3+1)*(2*3+1)/6 = 22
F (5-2) donne
5-2*5-2*(5-2+1)*(5-2+1)/4-5-2*(5-2+1)*(2*5-2+1)/6 = -30
et gâcher la priorité de l'opérateur. la version de la fonction n'a pas ce problème
la source
n
par(n)
. Aussi,F(n) n
=>F(n)n
peu importe.return p*p/4-p*(n-~n)/6
àreturn(p/4-(n-~n)/6)*p
.JavaScript (ES6), 22 octets
Essayez-le en ligne!
la source
Pyth, 7 octets
Essayez-le en ligne ici .
Utilise la formule dans la réponse de Neil .
la source
SNOBOL4 (CSNOBOL4) ,
7069 octetsEssayez-le en ligne!
la source
Pari / GP , 21 octets
Essayez-le en ligne!
la source
05AB1E , 6 octets
Essayez-le en ligne!
Explication
Quelques autres versions avec le même nombre d'octets:
L<ān*O
Ln.āPO
L¦nā*O
la source
R , 28 octets
Essayez-le en ligne!
la source
sum(x<-1:scan())^2-sum(x^2)
pour -1MathGolf , 6 octets
Essayez-le en ligne!
Explication:
la source
Clojure , 58 octetsEssayez-le en ligne!
Edit: j'ai mal compris la question
Clojure ,
55, 35 octetsEssayez-le en ligne!
la source
(apply +
est plus court que(reduce +
.cQuents ,
1715 octetsEssayez-le en ligne!
Explication
la source
APL (NARS), 13 caractères, 26 octets
utiliser la formule Sum'w = 1..n '(w w (w-1)) possible j'ai écrit la même chose un autre a écrit + ou - comme "1⊥⍳ × ⍳ × ⍳-1"; tester:
la source
Stax , 4 octets
Exécuter et déboguer
Pour tous les
k
entiers positifs jusqu'à l'entrée, ajoutezk^2 * (k-1)
.la source
QBASIC,
4544 octetsAller en mathématiques pures économise 1 octet!
Essayez-le en ligne!
Réponse précédente, basée sur une boucle
Essayez-le en ligne!
Notez que le REPL est un peu plus développé car l'interpréteur échoue sinon.
la source
JAEL ,
1310 octetsEssayez-le en ligne!
Explication (générée automatiquement):
la source
05AB1E , 6 octets
Essayez-le en ligne!
Explication:
Æ
n'est pas utile souvent, mais c'est le moment de briller. Cela bat le naïfLOnILnO-
de deux octets entiers.la source