Size negatif olmayan n
bir tam sayı ve bir tam sayı verilir p >= 2
. Birlikte almak için bazı p
güçler ( p=2
kareler, p=3
küpler anlamına gelir) eklemeniz gerekir n
. Bu her zaman negatif olmayan herhangi bir şey içindir n
, ancak ihtiyacınız olan birçok pozitifp
gücü (herhangi bir pozitif tamsayı) bilmiyorsunuz.
Bu sizin göreviniz: p
toplayabileceğiniz minimum güç sayısını bulun n
.
Örnekler
>>> min_powers(7, 2)
4 # you need at least four squares to add to 7
# Example: (2)^2 + (1)^2 + (1)^2 + (1)^2 = 4 + 1 + 1 + 1 = 7
>>> min_powers(4, 2)
1 # you need at least one square to add to 4
# Example: (2)^2 = 4
>>> min_powers(7, 3)
7 # you need at least seven cubes to add to 7
# Example: 7*(1)^3 = 7
>>> min_powers(23, 3)
9 # you need at least nine cubes to add to 23
# Example: 2*(2)^3 + 7*(1)^2 = 2*8 + 7*1 = 23
Bu sorunla ilgili bir Wikipedia makalesi, Waring'in sorunu .
kurallar
Kodunuz gerekir bir program veya bir fonksiyonu olacaktır.
Girdi iki tamsayıdır
n
vep
herhangi bir sıradadır. Tüm girişlerin geçerli olduğunu varsayabilirsiniz (n
herhangi bir pozitif tamsayıdır,p >= 2
Çıktı, toplanması gereken güç sayısını temsil eden bir tamsayıdır
n
.Bu kod golf, bu yüzden en kısa program kazanır., Mutlaka en verimli değil.
Tüm yerleşik yapılara izin verilir.
Her zaman olduğu gibi, sorun net değilse, lütfen bana bildirin. İyi şanslar ve iyi golf!