Definições
Função Phi de Euler ( função totiente AKA ): uma função que recebe um número positivo e retorna o número de números positivos menor que o número especificado, que são co-primos com um número determinado. É indicado como
φ(n)
.Número alcançável : se existe um número inteiro positivo
x
tal queφ(x) == n
, entãon
é alcançável .
Tarefa
Escreva uma função / programa para determinar se um número inteiro positivo é acessível.
Entrada
Um número positivo, em qualquer formato razoável. Pode-se supor que o número esteja dentro da capacidade do idioma. Entrada unária é aceita.
Resultado
Dois valores consistentes, um para números alcançáveis e outro para números inacessíveis. Os dois valores podem ser qualquer coisa, desde que sejam consistentes.
Casos de teste
Os números alcançáveis abaixo 100
são:
1, 2, 4, 6, 8, 10, 12, 16, 18, 20, 22, 24, 28, 30, 32, 36, 40, 42, 44, 46, 48, 52, 54, 56, 58, 60, 64, 66, 70, 72, 78, 80, 82, 84, 88, 92, 96
( A002202 no OEIS)
Regras
Aplicam-se brechas padrão .
Critério de vitória
Isso é código-golfe . Envio com menor número de bytes ganhos.
Referências
fonte
phi(n) = count { m : 1 <= m <= n AND (m,n) are coprime }
... isso é verdade?Respostas:
Geléia ,
76 bytesNão é exatamente rápido. Retorna 1 ou 0 .
Experimente online!
Como funciona
fonte
Mathematica, 28 bytes
Como a resposta de Dennis's Jelly, calculamos os valores of de todos os números até o quadrado da entrada e verificamos se a entrada aparece nela. Retorna
False
se a entrada está acessível eTrue
se não estiver. Sim, isso é confuso. MasFreeQ
é um byte menor queMatchQ
, e ei, a especificação disse que existem dois valores consistentes> :)fonte
JavaScript (ES6),
9082 bytesRetorna
0
outrue
.Isso se baseia na suposição de que se x existe, então x ≤ 2n . Se for falso, deve ser atualizado para uso em
x=n*n
vez dex=n*2
(mesmo tamanho, muito mais lento).Um case de borda é n = 128, o qual requer computação ϕ (255) .
Demo
Mostrar snippet de código
fonte
n=2
,n=8
,n=128
,n=32768
en=2147483648
.Axioma, 56 bytes
não sei se está certo ... código e resultados do teste
O intervalo 1 .. (2 * x) ficaria ok até a entrada x = 500 ...
fonte
Pari / GP , 34 bytes
Retorna
0
se acessível,1
se não estiver.Experimente online!
fonte
05AB1E , 5 bytes
Explicação:
Experimente online!
fonte
05AB1E ,
1312 bytesEDIT : Salva um byte porque a entrada é reutilizada se a pilha não tiver elementos suficientes.
Saídas 1 se acessível, 0 se não estiver.
Baseia-se na suposição de que x ≤ 2n, se existir.
Experimente online!
Como funciona
fonte
C, 123 bytes
Experimente on-line
fonte