s=p=1;exec"if s%p*s%~-~p:print`p`+','+`p+2`\ns*=p*p;p+=2\n"*999 Source.
3 Réponses :
Le code est itératif. P>
s = p = 1 code>, initialisation li>
-
exec "f (...)" * 999 code> est identique à pour i in gamme (999): f (...) ": code> li>
-
s% p code> est un modulo li>
-
p * s code> est une multiplication (x, y) code>, opération binaire li>
-
~ - ~ code> a expliqué Voici . LI>
-
\ n code> signifie pause-ligne, li>
-
\ ns code> signifie une pause de ligne et s code> fait partie de la déclaration s * = p * p; code> li> li>
-
p + = 2 code> signifie que l'affectation p = p + 2 code> li>
ol>
Espérons que d'autres personnes peuvent remplir les lacunes. Pour une enquête plus forte, quelle est son équation récursive? P>
Voici un désactivation de l'idée de base.
# p = 1; s = p s=p=1 #exec"if s%p*s%~-~p:print`p`+','+`p+2`\ns*=p*p;p+=2\n"*999 for i in range(999): # s%p = remainder of s/p # ~p = 1s complement of p if s%p*s%~-~p: # `p` = repr(p) print`p`+','+`p+2` # s = s*p*p s*=p*p # p = p+2 p+=2
Pourriez-vous clarifier la partie "S% ~ -X", où X est déjà expliqué?
Apparemment, "~ - ~ x" signifie (1st COMP (- (1ère comp x)))) code> est-il seulement 1er complément puis prenant
- code> et encore 1er complément ?
@Hh: le ~ -x code> fait fondamentalement un
x-1 code>, mais comme cela nécessiterait
( code> et
) code> , c'est plus court;) Le
S% code> est simplement un modulo
Fwiw, ~ - ~ p code> est égal à
-p - 2 code> en raison de la fonctionnement du complément de 1 1, de sorte que le conditionnel fonctionne sur
(s mod p) * ( s mod (-p-2)) code>
Je viens de voir maintenant que la fonction réelle était ~ - ~ x code> au lieu de
~ -x code>. Dans ce cas, il est à peu près la même chose sauf que c'est une inversion et la différence est 2.
Qui est essentiellement (1 Comp (1 Comp (1 Comp X))) ~ 1 == -2; --2 == 2; ~ 2 == -3 Code> juste une façon plus courte d'écrire
(x + 2) code>, 4 caractères par rapport à 5 caractères. Même si le résultat finit par négativement, le mod sert toujours son objectif.
(...) code> est nécessaire en raison de l'ordre des opérations,
négation> complément> MOD> (MULT, DIV)> (soustraction, addition) code> (en haut de la page ma tête)
Il calcule et imprime les ensembles de nombres premiers twin. très cool :) p> p>
C'est pas i> syntaxique "sucre".
Python obscurci !! Qui a besoin de ça?