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?