A fatoração de curva elíptica de Lenstra ou o método de fatoração de curva elíptica (ECM, do inglês Elliptic-Curve Method) é um algoritmo rápido, com tempo de execução sub-exponencial, para a fatoração de inteiros, que emprega curvas elípticas. Para a fatoração de uso geral, o ECM é o terceiro método de fatoração conhecido mais rápido. O segundo mais rápido é o crivo quadrático de múltiplos polinômios, e o mais rápido é o crivo do corpo de números geral. A fatoração de curva elíptica de Lenstra recebeu o nome em homenagem a Hendrik Lenstra. Trata-se de um algoritmo de fatoração de grupo algébrico.

De um ponto de vista prático, o ECM é considerado um algoritmo de fatoração de propósito específico, pois é o mais adequado para encontrar fatores pequenos. Atualmente, continua a ser o melhor algoritmo para divisores que não excedam 50 a 60 dígitos, dado que o seu tempo de execução é dominado pelo tamanho do menor fator p e não pelo tamanho do número n a ser fatorado. Frequentemente, o ECM é utilizado para extrair fatores pequenos de um inteiro muito grande com muitos fatores; se o inteiro restante continuar a ser composto, então ele possui apenas fatores grandes e é fatorado recorrendo a técnicas de uso geral. O maior fator encontrado utilizando o ECM até à data tem 83 dígitos decimais e foi descoberto a 7 de setembro de 2013 por R. Propper.[1] Aumentar o número de curvas testadas melhora as hipóteses de se encontrar um fator, mas estas não são lineares em relação ao aumento do número de dígitos.

Algoritmo

editar

Contexto

editar

O método de fatoração de curva elíptica de Lenstra utiliza uma curva elíptica módulo n (ou seja, o número a ser fatorado) e multiplica um ponto aleatório P sobre a mesma. A multiplicação baseia-se na multiplicação de pontos da curva elíptica, que, por sua vez, é apenas a adição repetida de pontos da curva elíptica, descrita no artigo sobre curvas elípticas. Esta adição formaria um grupo no caso não modular e no caso em que n é primo, uma vez que (os inteiros módulo ) formam um grupo quando n é primo.

Quando se utilizam números modulares em vez de toda a gama de números inteiros, a adição de dois pontos na mesma curva elíptica envolveria calcular o coeficiente angular modular de uma corda que une e , e, assim, a divisão entre classes de resíduos módulo , efetuada através do algoritmo de Euclides estendido. Em particular, a divisão por algum inclui o cálculo do . Supondo que calculamos um coeficiente angular da forma com , se , o resultado da adição do ponto será , o ponto "no infinito" correspondente à intersecção da linha "vertical" que une com a curva. No entanto, se , a adição do ponto não produzirá um ponto significativo na curva; mas, mais importante ainda, é um fator não trivial de : o que significa que fatorámos o número com sucesso.

Os métodos de multiplicação habituais, como a multiplicação por duplicação, continuam a aplicar-se. A adição sucessiva ingênua não é necessária.

Processo

editar

O método de fatoração de curva elíptica de Lenstra para encontrar um fator de um dado número natural funciona da seguinte forma:

  1. Escolha uma curva elíptica aleatória sobre (os inteiros módulo ), com uma equação da forma juntamente com um ponto não trivial nela contido.
    Isto pode ser feito escolhendo primeiro valores aleatórios para , e em seguida definindo para garantir que o ponto se encontra na curva.
  2. Conforme discutido acima, definimos a adição e a multiplicação de um ponto na curva. Com repetições suficientes de adições, deveremos conseguir provocar uma falha na adição, encontrando assim um fator. Como resultado, calculamos na curva elíptica (), onde é o produto de muitos números pequenos.
    • k pode ser o produto de números primos pequenos elevados a potências pequenas, como no algoritmo p-1, ou o fatorial para algum não muito grande. Isto pode ser efetuado de forma eficiente, processando um fator pequeno de cada vez. Digamos, para obter , primeiro calcula-se , depois , de seguida , e assim sucessivamente. é escolhido para ser pequeno o suficiente para que a adição pontual vezes possa ser executada num tempo razoável.
  3. Verifique o resultado da adição.
    • Se concluirmos todos os cálculos acima sem encontrar elementos não invertíveis (), isso significa que a ordem da curva elíptica (módulo primos) não é suficientemente suave, pelo que precisamos tentar novamente com uma curva e ponto de partida diferentes.
    • Se encontrarmos um , concluímos o processo: este é um fator não trivial de .

A complexidade de tempo depende do tamanho do menor fator primo do número e pode ser representada por exp[(2 + o(1)) ln p ln ln p], onde p é o menor fator de n, ou , na Notação L.

Explicação

editar

Se p e q forem dois divisores primos de n, então y2 = x3 + ax + b (mod n) implica que a mesma equação também é válida módulo p e módulo q. Estas duas curvas elípticas mais pequenas com a adição são agora grupos genuínos. Se estes grupos tiverem Np e Nq elementos, respetivamente, então para qualquer ponto P na curva original, pelo teorema de Lagrange, k > 0 ser o menor valor tal que na curva módulo p implica que k divide Np; além disso, . Uma afirmação análoga é válida para a curva módulo q. Quando a curva elíptica é escolhida de forma aleatória, então Np e Nq são números aleatórios próximos de p + 1 e q + 1, respetivamente (ver abaixo). Logo, é improvável que a maioria dos fatores primos de Np e Nq sejam os mesmos, e é bastante provável que, ao calcular eP, encontremos algum kP que seja ∞ módulo p mas não módulo q, ou vice-versa. Quando isto acontece, kP não existe na curva original e, nos cálculos, descobrimos algum v cujo mdc(v,p) = p ou mdc(v, q) = q, mas não ambos. Isto é, o mdc(v, n) forneceu um fator não trivial de n.

O ECM é, na sua essência, uma melhoria do mais antigo algoritmo p − 1. O algoritmo p − 1 encontra fatores primos p tais que p − 1 é suave em potências b (b-powersmooth) para pequenos valores de b. Para qualquer e, que seja múltiplo de p − 1, e qualquer a relativamente primo a p, pelo Pequeno teorema de Fermat temos ae ≡ 1 (mod p). Em seguida, o mdc(ae − 1, n) tem grande probabilidade de produzir um fator de n. Contudo, o algoritmo falha quando p − 1 tem grandes fatores primos, como é o caso para números que contêm primos fortes, por exemplo.

O ECM contorna este obstáculo considerando o grupo de uma curva elíptica aleatória sobre o corpo finito Zp, em vez de considerar o grupo multiplicativo de Zp, o qual tem sempre ordem p − 1.

A ordem do grupo de uma curva elíptica sobre Zp varia (bastante aleatoriamente) entre p + 1 − 2p e p + 1 + 2p pelo teorema de Hasse, e é provável que seja suave para algumas curvas elípticas. Apesar de não existir prova de que se encontre uma ordem de grupo suave no intervalo de Hasse, utilizando métodos probabilísticos heurísticos, o Teorema de Canfield-Erdős-Pomerance com parâmetros adequadamente otimizados e a Notação L, podemos prever a necessidade de testar L[2/2, 2] curvas antes de obtermos uma ordem de grupo suave. Esta estimativa heurística é muito fiável na prática.

Exemplo de uso

editar

O exemplo que se segue provém de Trappe & Washington (2006), com alguns detalhes acrescentados.

Queremos fatorar . Vamos escolher a curva elíptica , com o ponto pertencente a ela, e vamos tentar calcular o ponto .

O coeficiente angular da linha tangente em algum ponto na curva é . Utilizando , podemos calcular o ponto . Se o valor de não existir, como consequência de não possuir um inverso modular, então constitui um fator não trivial de .

Primeiro, calculamos . Utilizando a duplicação de ponto, temos , logo as coordenadas do ponto são

obtendo-se o ponto .

A seguir, calculamos . Temos . Como , o inverso modular de 106 existe. Utilizando o algoritmo de Euclides estendido, podemos obter que .

Sendo assim, podemos calcular as coordenadas de , tal como fizemos acima. As coordenadas do ponto são

Isto gera .

Depois disto, podemos calcular através da adição de ponto. A linha que une e tem o coeficiente angular , portanto as coordenadas de são

resultando no ponto .

Podemos, da mesma forma, calcular os pontos , , e assim por diante, mas calcular requer inverter 599 (mod 455839), o que não é possível, visto que . Sendo assim, 599 é um divisor de 455839. Após uma rápida divisão, temos 455839 = 599×761.

A razão pela qual isto funciona é que a curva (mod 599) tem 640 = 27·5 pontos, ao passo que a (mod 761) tem 777 = 3·7·37 pontos. Ademais, 640 e 777 são os menores inteiros positivos k tais que kP = ∞ na curva (mod 599) e (mod 761), respetivamente. Visto que 8! é um múltiplo de 640 mas não é um múltiplo de 777, temos 8!P = ∞ na curva (mod 599), mas não na curva (mod 761), daí a adição repetida ter falhado aqui, providenciando a fatoração.

O algoritmo, com coordenadas projetivas

editar

Antes de considerar o plano projetivo sobre , considere primeiro um espaço projetivo 'normal' sobre : Em vez de pontos, estudam-se as linhas que passam pela origem. Uma linha pode ser representada como um ponto não nulo , sob uma relação de equivalência ~ dada por: ⇔ ∃ c ≠ 0 tal que x' = cx, y' = cy e z' = cz. Sob esta relação de equivalência, o espaço é designado como o plano projetivo ; os pontos, representados por , correspondem a linhas num espaço tridimensional que passam pela origem. Note-se que o ponto não existe neste espaço, pois para desenhar uma linha em qualquer direção possível é necessário que pelo menos um entre x', y' ou z' seja ≠ 0. Agora observe-se que quase todas as linhas atravessam um determinado plano de referência - tal como o plano (X,Y,1) - ao passo que as linhas precisamente paralelas a este plano, possuindo coordenadas (X,Y,0), especificam direções de forma unívoca, como 'pontos no infinito' que são utilizados no plano afim (X,Y) sobre o qual se situam.

A coordenada corresponde a no espaço afim.[2]

No algoritmo, apenas é utilizada a estrutura de grupo de uma curva elíptica sobre o corpo . Dado que não precisamos necessariamente do corpo , um corpo finito também proporcionará uma estrutura de grupo numa curva elíptica. Contudo, considerar a mesma curva e operação sobre com n não sendo um número primo não forma um grupo. O Método da Curva Elíptica tira proveito dos casos de falha da lei da adição.

Enunciamos agora o algoritmo em coordenadas projetivas. O elemento neutro é então dado pelo ponto no infinito . Seja n um inteiro (positivo) a fatorar e considere-se a curva elíptica (um conjunto de pontos com alguma estrutura) .

  1. Escolha com a ≠ 0.
  2. Calcule . A curva elíptica E fica, portanto, na forma de Weierstrass, dada por e, ao recorrer a coordenadas projetivas, a curva elíptica é dada pela equação homogênea . Possui o ponto .
  3. Selecione um limite superior para esta curva elíptica.
    • Observação: Apenas se encontrarão fatores p se a ordem do grupo g da curva elíptica E sobre (denotada por ) for B-suave, o que significa que todos os fatores primos de têm de ser menores ou iguais a B.
  4. Calcule .
  5. Calcule (a multiplicação é uma adição repetida) no anel .
    • Se o cálculo retornar com sucesso , tal significa que g não é B-suave ou que n é primo. Retorne ao passo 2 para escolher outra curva.
    • Se o cálculo falhar em algum ponto, isso significa que um divisor não trivial pode ser encontrado. Ele pode falhar porque a adição e a multiplicação não estão bem definidas caso n não seja primo, mas isso apenas ocorre quando se tenta inverter um resíduo particular v. Neste cenário, o fator é encontrado como de forma igual à descrita acima.

No ponto 5 é dito que, sob as circunstâncias adequadas, pode ser encontrado um divisor não trivial. Como assinalado no artigo de Lenstra (Factoring Integers with Elliptic Curves), a adição exige a suposição de . Se não forem e forem distintos (caso contrário, a adição funciona de forma semelhante, mas com pequenas diferenças), então a adição decorre do seguinte modo:

  • Para calcular: ,
  • ,
  • ,
  • ,
  • .

Se a adição falhar, tal dever-se-á a uma falha no cálculo de Especificamente, porque nem sempre pode ser calculado se n não for primo (e, por isso, não é um corpo). Sem assumir que é um corpo, poderia calcular-se:

  • ,
  • ,
  • ,
  • , e simplificar se possível.

Este cálculo é sempre admissível e, caso o mdc da coordenada Z com n ≠ (1 ou n), a simplificação falha, encontrando-se um divisor não trivial de n.

Variante de duas fases

editar

De forma análoga à variante de duas fases do algoritmo p − 1 de Pollard, o ECM de Lenstra também pode ser efetuado em duas fases. Isto permite poupar um fator temporal de O(log p).[2]

Algoritmo ECM de Duas Fases.[2]

  • Entrada: número a ser fatorado n, limites inteiros .
  • Saída: um fator de n ou falha.

Preparação.

  1. Escolha uma curva elíptica aleatória E mod n.
  2. Escolha um ponto na curva.

(Uma escolha conveniente é a parametrização de Suyama, que requer o sorteio de apenas um número aleatório).

Fases.

  1. Calcule um ponto sobre E. O produto indica que se itera sobre cada número primo ; este desempenha o mesmo papel que o grande observado nos algoritmos acima.
    • Utilizar o produto de todas as potências de números primos menores que em vez de diminui a complexidade assintótica em .[3]
  2. Para cada número primo p, ,
    • Calcule um ponto sobre E.
    • Calcule . Se , imprima e saia.
  3. Se todos os números primos no intervalo forem testados sem produzir um fator, relate falha.

É possível que a fase 1 produza um fator como discutido anteriormente: um denominador não invertível implica um fator. é, na sua função, igual a da versão normal, portanto, isto também sucede quando a ordem de grupo g é B-suave. Dito de outra forma, procura-se na fase 1 um divisor primo p tal que seja o elemento neutro de .

A segunda fase é muito idêntica à segunda fase do p-1 e p+1. Corresponde a uma continuação do trabalho da fase 1 e pode ser descrita com termos matemáticos bastante similares. Ela suaviza a condição para que um fator possa ser encontrado quando g é -suave, ou, por outras palavras, quando o maior fator primo de g for no máximo e o segundo maior for no máximo .

Para atingir a fase 2, espera-se que haja um primo p entre e tal que ; assim, buscar uma inversão falhada produzi-lo-ia através de um mdc. De forma equivalente, busca-se um divisor primo q tal que tenha uma ordem prima pequena em . A verificação de uma ordem pequena de é realizada na fase 2 pelo cálculo de módulo n para cada número primo l.[2]

O texto acima reflete a abordagem "ingênua", que permite a adoção da otimização de emparelhamento de primos e da extensão de Brent-Suyama. Existe, contudo, uma fase 2 muito mais rápida que assenta na multiplicação polinomial, oriunda da tese de 1992 de Peter Montgomery.[2] Esta nova técnica pode ser encontrada no GMP-ECM e no Prime95.[4] A mesma técnica foi depois estendida ao p-1 e p+1 (Montgomery e Kruppa 2008).[5]

Curvas de Edwards torcidas

editar


O uso de curvas de Edwards exige menos multiplicações modulares e menos tempo do que o uso de curvas de Montgomery ou curvas de Weierstrass (outros métodos utilizados). Recorrendo a curvas de Edwards, também é possível detetar um número superior de números primos.

Definição. Seja um corpo em que , e sejam com . Então a curva de Edwards torcida é dada por Uma curva de Edwards consiste numa curva de Edwards torcida em que .

São conhecidas cinco formas de construir um conjunto de pontos numa curva de Edwards: o conjunto de pontos afins, o conjunto de pontos projetivos, o conjunto de pontos invertidos, o conjunto de pontos estendidos e o conjunto de pontos completados.

O conjunto dos pontos afins é dado por:

.

A lei de adição é dada por

O ponto (0,1) é o seu elemento neutro e o inverso de é .

As restantes representações são definidas de forma semelhante à forma como a curva projetiva de Weierstrass deriva da afim.

Qualquer curva elíptica na forma de Edwards tem um ponto de ordem 4. Portanto, o grupo de torção de uma curva de Edwards sobre é isomorfo a ou .

Os casos mais interessantes para o ECM são e , dado que estes forçam as ordens de grupo da curva módulo primos a serem divisíveis por 12 e 16 respetivamente. As curvas enumeradas a seguir têm um grupo de torção isomorfo a :

  • com ponto onde e
  • com ponto onde e

Todas as curvas de Edwards com um ponto de ordem 3 podem ser inscritas das formas mostradas acima. Curvas com grupo de torção isomorfo a e podem revelar-se mais eficientes a descobrir primos.[6]

Implementações de software

editar

O GMP-ECM de Paul Zimmerman é uma implementação de propósito geral do algoritmo de Lenstra baseada na GNU Multiple Precision Arithmetic Library. Tem sido continuamente atualizada, e a sua mais recente versão até setembro de 2025 é a 7.0.6 de julho de 2024. Permite a utilização de curvas de Montgomery, Weierstrass e de curvas (torcidas) Hessianas. Pode executar a fase 1 para um subconjunto de curvas de Montgomery numa GPU CUDA, tendo a implementação mais antiga de Cyril Bouvier de 2012 sido substituída pela nova implementação de Seth Troisi em 2021. A versão 7.0.6 também contempla uma implementação do método HECM (descrito mais abaixo), dos métodos p-1 e p+1 e da verificação de primalidade com recurso ao APRCL.[7] O GMP-ECM é utilizado no SageMath.

Entre 2008 e 2010, Daniel J. Bernstein e os seus colaboradores publicaram uma sequência de implementações assentes nas curvas elípticas de Edwards Torcidas. Todas elas reclamam superar a performance da versão coeva do GMP-ECM, sendo o EECM-MPFQ de 2008 a sua mais avançada manifestação na época. Bernstein lançou também duas implementações concebidas para GPUs, sendo o CUDA-EECM de 2009 a versão mais contemporânea e veloz de ambas.[6][8]

O Prime95 contém uma implementação do Lenstra ECM orientada para as curvas de Montgomery e Edwards. O seu uso é empregue no âmbito do subprojeto ECM do GIMPS, o qual tenta fatorar números de Mersenne compostos que não sejam menores que 21213.[9] Pode originar resultados da fase 1 harmonizados e compatíveis com o GMP-ECM, bem como processar os dados da fase 1 do GMP-ECM.[10] Consegue ser mais rápido que o GMP-ECM na fase 1.[11]

John Wloka e colaboradores divulgaram em 2020 o ecmongpu, uma materialização quer da fase 1 quer da fase 2 do Lenstra ECM suportada nas curvas elípticas de Edwards Torcidas. A sua tese foca-se na aferição de desempenho focada na fatoração de módulos até aos 448 bits de dimensão (ou seja, compreendidos entre 2447 e 2448-1).[12]

Todo o software supramencionado é de código aberto. Além destes, de acordo com as referências de Paul Zimmerman, também o software de código aberto PARI/GP bem como o sistema privativo Magma compreendem nas suas soluções "boas implementações de ECM".[11] Uma implementação anterior construída em software de 16 bits[13] assenta no giantint delineado por Richard Crandall.[11]

Método da curva hiperelíptica (HECM)

editar

Existem desenvolvimentos recentes na utilização de curvas hiperelípticas para fatorar inteiros. Cosset demonstra no seu artigo (de 2010) que se pode construir uma curva hiperelíptica de género dois (portanto uma curva com f de grau 5), o que fornece o mesmo resultado do que utilizar duas curvas elípticas "normais" em simultâneo. Ao utilizar a superfície de Kummer, o cálculo é mais eficiente. As desvantagens da curva hiperelíptica (em comparação com uma curva elíptica) são compensadas por esta forma alternativa de cálculo. Por conseguinte, Cosset defende, grosso modo, que o uso de curvas hiperelípticas para fatoração não é pior do que o uso de curvas elípticas.

Versão Quântica (GEECM)

editar

Bernstein, Heninger, Lou e Valenta propõem o GEECM, uma versão quântica do ECM com curvas de Edwards.[14] Ele utiliza o Algoritmo de Grover para duplicar, aproximadamente, o comprimento dos números primos encontrados quando comparado com o EECM normal, assumindo um computador quântico com qubits suficientes e de velocidade comparável ao do computador clássico a executar o EECM.

Referências

editar
  1. 50 largest factors found by ECM.
  2. a b c d e Zimmermann, Paul; Dodson, Bruce (2006). «20 Years of ECM» (PDF). Algorithmic Number Theory. Col: Lecture Notes in Computer Science. 4076. [S.l.: s.n.] pp. 525–542. ISBN 978-3-540-36075-9. doi:10.1007/11792086_37  HAL
  3. Galbraith, Steven (2012). «Primality Testing and Integer Factorisation using Algebraic Groups». Mathematics of Public Key Cryptography (PDF). [S.l.]: Cambridge University Press. pp. 261–268. Consultado em 16 de agosto de 2025. Cópia arquivada (PDF) em 7 de fevereiro de 2023 
  4. https://www.mersenne.org/download/whatsnew_3019b11.txt "ECM stage 2 using fast polynomial multiplication similar to the GMP-ECM program. If lots of memory is available for stage 2 this implementation will be substantially faster."
  5. Montgomery, Peter L.; Kruppa, Alexander (2008). «Improved Stage 2 to P ± 1 Factoring Algorithms» (PDF). Algorithmic Number Theory. Col: Lecture Notes in Computer Science. 5011. [S.l.: s.n.] pp. 180–195. ISBN 978-3-540-79455-4. doi:10.1007/978-3-540-79456-1_12 
  6. a b Berstein, Daniel J.; Birkner, Peter; Lange, Tanja; Peters, Christiane (9 de janeiro de 2008). «ECM Using Edwards Curves» (PDF). Cryptology ePrint Archive. Cópia arquivada (PDF) em 7 de junho de 2025  (ver topo da página 30 para exemplos de tais curvas)
  7. «ZIMMERMANN Paul / ecm · GitLab». GitLab (em inglês). Cópia arquivada em 26 de março de 2026 
  8. «EECM: ECM using Edwards curves» 
  9. «GIMPS ECM Progress - PrimeNet». www.mersenne.org 
  10. undoc.txt e ECMSTAGE2=
  11. a b c Zimmerman, Paul. «ECM software» 
  12. Wloka, Jonas; Richter-Brockmann, Jan; Stahlke, Colin; Kleinjung, Thorsten; Priplata, Christine; Güneysu, Tim (2020). Revisiting ECM on GPUs. 19th International Conference on Cryptology and Network Security. 12579. pp. 299–319. doi:10.1007/978-3-030-65411-5_15  Verifique o valor de |url-access=subscription (ajuda)
  13. Bernstein, DJ. «giantint». Cópia arquivada em 16 de setembro de 2024 
  14. Bernstein D.J., Heninger N., Lou P., Valenta L. (2017) Post-quantum RSA. In: Lange T., Takagi T. (eds), Post-Quantum Cryptography. PQCrypto 2017. Lecture Notes in Computer Science, vol 10346. Springer, Cham

Bibliografia

editar

Ligações externas

editar
  • Factorization using the Elliptic Curve Method, uma aplicação WebAssembly que utiliza ECM e muda para o Self-Initializing Quadratic Sieve quando este for mais veloz.
  • GMP-ECM Arquivado em 2009-09-12 no Wayback Machine, uma implementação eficiente em ECM.
  • ECMNet, uma implementação em matriz com facilidade assente em modelo cliente-servidor premente a funcionar com diversos e inerentes do aspeto da base associados de projetos atinentes do escopo pontual da fatoração.
  • pyecm, uma implementação em python do ECM.
  • Distributed computing project yoyo@Home Subprojeto ECM é focado atinente na dotação ao preceito com matriz no programa afeto fidedignamente associada perante Fatoração a Curvas Elípticas a estipulante base associado de vertente que providencia da premissa a focar a descobrir fatores adstritos com preceito em base na dimensão pautada a um reduto do cariz de naturezas diversas na dimensão associada afeta de moldura aos números.
  • Lenstra Elliptic Curve Factorization algorithm source code Código-fonte simples do Algoritmo da Fatoração de Curva Elíptica baseada no GMP e no C.
  • EECM-MPFQ Uma estipulação na sua afetação de moldura a focar de uma implementação consubstanciando e balizado inerente afeto a recurso de providenciar do ECM socorrendo-se de curvas com matriz em pendor associado a Edwards escritas estipulando ao preceito ditado com a biblioteca de corpo finito e base premente em referencial MPFQ.

📚 Artikel Terkait di Wikipedia

Teorema de Bell

{\displaystyle \lambda } : P ( a → , b → ) = ∫ d λ ρ ( λ ) A ( a → , λ ) B ( b → , λ ) , {\displaystyle P({\vec {a}},{\vec {b}})=\int d\lambda \,\rho (\lambda )A({\vec

Algoritmo de Euclides

C+{\frac {12}{\pi ^{2}}}\ln 2\,{\biggl (}{\ln a}-\sum _{d\mid a}{\frac {\Lambda (d)}{d}}{\biggr )}} onde Λ(d) é a função de Mangoldt. Uma terceira média