Golfscript, 114 112 111 110 109 65 (86) caracteres
Se você não se importa em obter resultados esta semana, basta 65 caracteres:
~](;2/0\:X{~\.X{0=}%^\{\.@- 1928049029:P.,\@{@*\%(!}++?**}+/+P%}/
Mas se você está procurando eficiência, é um pouco mais longo com 86 caracteres:
~](;2/0\:X{~\.X{0=}%^\{\[.0](@-[1928049029:P%P]{.~/{\.(;@@~@*-+\}+2*.1=}do;0=*}+/+P%}/
Isso é dissecado com muito mais detalhes do que desejo repetir aqui no meu blog .
Principalmente não é o meu trabalho, mas o uso pesado do Nabb fornece 47 caracteres:
n%(!\:A{~A{~;.3$- 1928049029:N((?1or**}/\/+N%}/
Nota: Eu apenas raciocinei sobre esse código: tentar executá-lo seria inútil, dado o período de tempo e a quantidade de memória que ele usaria.
{*N%2<}
por{*N%1=}
como no blog e você pode abandonar o(;
depoisN,
. Mas então, para a entrada de desempenho é irrelevante, você pode usar o pequeno teorema de Fermat sem se preocupar com o lado modular da exponenciação - apenas deixe isso para a arrumação final - para que o destinatário se torneN((?
.{*N%1=}+
vai faltar o caso com o denominador zero, que levaria pelo menos 3 caracteres para lidar. Porém, é bom pegar simplesmente x ^ (N-2), e podemos obter 46 caracteres usando isso.Lua 444 Chars
Funciona para o exemplo na página wiki
Mas de alguma forma não funciona para os exemplos aqui nesta página. Se alguém puder encontrar o erro?
Versão sem golfe:
Golfe (sem campo finito), 444 caracteres:
fonte
Java,
435407caracteresUngolfed:
fonte
Haskell, 183
fonte