Dados dois inteiros positivos A e B , retorne a posição p que minimiza o número de fatores primos (contando multiplicidades) do número inteiro resultante, quando B é inserido em A em p .
Por exemplo, dados A = 1234 e B = 32 , essas são as inserções possíveis (com p sendo indexado a 0) e as informações correspondentes sobre seus fatores principais:
p Resultado Fatores primos | Ω (N) / contagem 0 321234 [2, 3, 37, 1447] 4 1 | 132234 [2, 3, 22039] 3 2 123234 [2, 3, 19, 23, 47] 5 3 123324 [2, 2, 3, 43, 239] 5 4 123432 [2, 2, 2, 3, 37, 139] | 6
Você pode ver que o resultado possui um número mínimo de fatores primos, 3, quando p é 1. Portanto, nesse caso em particular, você deve gerar 1 .
Especificações
Se houver várias posições p que minimizem o resultado, você pode optar por imprimir todas elas ou qualquer uma delas.
Você pode escolher indexação 0 ou indexação 1 para p , mas essa opção deve ser consistente.
A e B podem ser tomados como números inteiros, seqüências de caracteres ou listas de dígitos.
Você pode competir em qualquer linguagem de programação e pode receber e fornecer saída por qualquer método padrão , observando que essas brechas são proibidas por padrão. Isso é código-golfe, então a submissão mais curta (pontuada em bytes) vence!
Casos de teste
A, B -> p (indexado 0) / p (indexado 1) 1234, 32 -> 1/2 3456, 3 -> 4/5 378, 1824 -> 0/1 1824, 378 -> 4/5 67, 267 -> Qualquer um ou todos entre: [1, 2] / [2, 3] 435, 1 -> Qualquer um ou todos entre: [1, 2, 3] / [2, 3, 4] 378100, 1878980901 -> Qualquer um ou todos entre: [5, 6] / [6, 7]
Por conveniência, aqui está uma lista de tuplas representando cada par de entradas:
[(1234, 32), (3456, 3), (378, 1824), (1824, 378), (67, 267), (435, 1), (378100, 1878980901)]
fonte
132234
vez de1
.Respostas:
Casca , 16 bytes
Espera entrada como strings, experimente online!
Explicação
fonte
MATL , 25 bytes
As entradas são seqüências de caracteres na ordem inversa. A saída é baseada em 1. Se houver um empate, a posição mais baixa é exibida.
Experimente online! Ou verifique todos os casos de teste .
Explicação
fonte
Pitão,
201311 bytesExperimente online
Explicação
fonte
Gelatina , 21 bytes
Experimente online!
-1 graças ao Sr. Xcoder .
Retorna todas as posições possíveis.
fonte
Japonês ,
2221 bytesIsso pareceu muito tempo enquanto eu estava escrevendo, mas, olhando algumas das outras soluções, na verdade parece um pouco competitivo. Ainda assim, provavelmente há um pouco de espaço para melhorias - o
cNq)
em particular está me irritando. Explicação a seguir.Pega a primeira entrada como uma string e a segunda como um número inteiro ou uma string. O resultado é indexado em 0 e retornará o primeiro índice se houver várias soluções.
Tente
Explicação
fonte
PowerShell , 228 bytes
Experimente online!
(Sugestões longas / de golfe são bem-vindas. Também expira o tempo limite no TIO para o último caso de teste, mas o algoritmo deve funcionar nesse caso sem problemas.)
O PowerShell não possui nenhum fator de fatoração principal incorporado, portanto, isso empresta o código da minha resposta no Prime Factors Buddies . Essa é a
function
declaração da primeira linha .Tomamos entrada
$a,$b
e, em seguida, definimos$p
como uma hashtable vazia. Em seguida, pegamos a string$b$a
, transformamos em uma matriz singleton com o operador vírgula,
e concatenamos a matriz com as coisas . O material é um loop$a
, inserindo$b
em todos os pontos, finalmente concatenado com o array$a$b
.Neste ponto, temos uma matriz de
$b
inseridos em todos os pontos$a
. Em seguida, enviamos essa matriz por um loop for|%{...}
. Cada iteração, inserimos em nosso hashtable na posição$i++
a.count
de quantos fatores primosf
que determinado elemento$_
tem.Por fim,
sort
a hashtable baseada emvalue
s, pega a0
th da mesma e seleciona aName
(ie, a$i
do índice). Isso fica no pipeline e a produção está implícita.fonte
05AB1E , 18 bytes
Experimente online!
fonte
05AB1E ,
2721 bytesExperimente online!
Ele retorna o menor 0 indexado p .
Graças ao @Enigma por -6 bytes!
Explicação
fonte
ηõ¸ì¹.sRõ¸«)øεIýÒg}Wk
.Limpo ,
165... 154 bytesExperimente online!
fonte
Python 2 ,
165146 bytesExperimente online!
fonte
JavaScript (ES6), 120 bytes
Aceita entrada como 2 strings. Retorna uma posição indexada em 0.
Casos de teste
Mostrar snippet de código
fonte
J, 60 bytes
Díade explícita. Pega B à direita, A à esquerda.
Saída indexada em 0.
Pode ser possível melhorar não usando caixas.
Explicação:
fonte
Python 3, 128 bytes
Indexado a 0; recebe strings como parâmetros. -6 bytes graças a Jonathan Frech.
fonte
:\n a
->:a
.Python, 122 bytes
Na prática, isso excede a profundidade máxima de recursão padrão rapidamente.
fonte