Na aritmética, um número n suave , onde n é um número primo, é matematicamente definido como um número inteiro positivo que não possui fatores primos maiores que n. Por exemplo, 42 é 7 bom porque todos os seus fatores primos são menores ou iguais a 7, mas 44 não é 7 bom porque também tem 11 como fator primo.
Defina um número bastante suave como um número sem fatores primos maiores que sua própria raiz quadrada. Assim, a lista de números bastante suaves pode ser formulada da seguinte maneira:
- (EDITADO!) 1 é um número bastante suave, devido à completa falta de fatores primos. (Observe que na versão original desta pergunta, 1 foi erroneamente excluído da lista; portanto, se você o excluir de suas saídas, não será marcado como errado.)
- Entre 4 (= 2 2 ) e 8, os números bastante suaves são 2-suaves, o que significa que eles têm 2 como seu único fator primo.
- Entre 9 (= 3 2 ) e 24, os números bastante suaves são 3 suaves e podem ter 2s e 3s em suas fatorações primárias.
- Entre 25 (= 5 2 ) e 48, os números bastante suaves são 5-suaves e podem ter 2s, 3s e 5s em suas fatorações primárias.
- E assim por diante, atualizando os critérios sempre que o quadrado do próximo número primo for atingido.
A lista de números bastante suaves é fixa e começa da seguinte forma: 1, 4, 8, 9, 12, 16, 18, 24, 25, ...
Seu desafio é escrever um código que produza todos os números bastante suaves, incluindo até 10.000 (= 100 2 ). Deve haver pelo menos um separador (não importa que tipo - espaço, vírgula, nova linha, qualquer coisa) entre cada número na lista e no próximo, mas é completamente irrelevante qual caractere é usado.
Como de costume, a menor contagem de bytes vence - obviamente, simplesmente exibir a lista não será muito benéfico para você aqui. Boa sorte!
1
)Respostas:
Na verdade, 11 bytes
Experimente online!
Não inclui 1.
Explicação:
fonte
Gelatina , 12 bytes
Experimente online!
Como funciona
fonte
Braquilog ,
2119 bytes1 byte graças a Fatalize, pela inspiração de mais 1 byte.
Experimente online!
Leva cerca de 6 segundos aqui.
Solução anterior de 21 bytes
Experimente online!
Leva cerca de 6 segundos aqui.
fonte
100^:4reP$pot^<=P@w\
é um byte mais curto, embora menos elegante.Haskell, 53 bytes
Não tenho tempo para jogar isso agora, mas quero ilustrar um método para testar se
n
é bastante suave: multiplique os números de1
parasqrt(n)
(ou seja, calcule um fatorial), aumente o produto para uma potência alta e verifique se o resultado é um múltiplo den
.Mude para
r=[2..10^4]
se1
não deve ser emitido.fonte
8
requer).Pitão ,
1615 bytes1 byte graças a Jakube.
Experimente online!
fonte
*dd
por essa função?05AB1E,
161413 bytesExplicação
Experimente online
fonte
4°
é a abreviação de 10000.Matlab,
5857565248 bytesPara cada número, verifica se todos os fatores ao quadrado não são maiores que o próprio número. Se sim, exibe esse número.
Obrigado a @Luis Mendo por jogar essa abordagem
Outra abordagem (50 bytes):
Para cada número calcula se o seu fator primo máximo ao quadrado é menor que o próprio número. Em seguida, usa-o para indexação.
fonte
for k=4:1e4,if factor(k).^2<=k,disp(k);end;end
SQF ,
252227220Formato de script padrão:
Inclua o pré-processador na cadeia de compilação ao chamar, por exemplo:
execVM "FILENAME.sqf"
call compile preprocessFile "FILENAME.sqf"
Isso grava no log do bate-papo do sistema, que é a coisa mais próxima que o SQF tem de stdout
fonte
C, 113 bytes
Ideone it!
fonte
Pyke,
131211 bytesExperimente aqui!
(O link só aumenta para 10 ^ 3 porque 10 ^ 4 excede o tempo limite)
fonte
J, 20 bytes
Resultado:
Experimente online aqui.
fonte
Python 2, 90 bytes
Ideone it!
fonte
R, 97 bytes
destroçado
fonte
Pitão, 12 bytes
Não inclui 1.
fonte