Um desafio simples, mas espero que não seja trivial:
Escreva um programa ou função que adicione os k
th poderes dividindo um número n
. Mais especificamente:
- Entrada: dois números inteiros positivos
n
ek
(ou um par ordenado de números inteiros, etc.) - Saída: a soma de todos os divisores positivos dos
n
quais são ask
potências de números inteiros
Por exemplo, 11! = 39916800 possui seis divisores que são cubos, ou seja, 1, 8, 27, 64, 216 e 1728. Portanto, dadas as entradas 39916800
e 3
, o programa deve retornar sua soma 2044
,.
Outros casos de teste:
{40320, 1} -> 159120
{40320, 2} -> 850
{40320, 3} -> 73
{40320, 4} -> 17
{40320, 5} -> 33
{40320, 6} -> 65
{40320, 7} -> 129
{40320, 8} -> 1
{46656, 1} -> 138811
{46656, 2} -> 69700
{46656, 3} -> 55261
{46656, 4} -> 1394
{46656, 5} -> 8052
{46656, 6} -> 47450
{46656, 7} -> 1
{1, [any positive integer]} -> 1
Isso é código de golfe, portanto, quanto menor o seu código, melhor. Congratulo-me com o código de golfe em todos os tipos de idiomas diferentes, mesmo que algum outro idioma possa se livrar com menos bytes que o seu.