Base-10'da tüm mükemmel kareler 0 , 1 , 4 , 5 , 6 veya 9 ile biter .
Base-16'da tüm mükemmel kareler 0 , 1 , 4 veya 9 ile biter .
Bu nedir ve nasıl çok iyi bu out çalışmaya neden Nilknarf açıklar bu cevap, ama ben de kısa bir açıklama buraya vereceğiz:
Bir Base-10 sayısını ( N) karelerken , "olanlar" basamağı "onlarca" basamağından veya "yüzlerce" basamağından vb. Etkilenmez. Sadece "olanlar" basamaklı N in "olanlar" rakamı etkileyen N 2 kolay (ama belki değil golfiest) yolu mümkün olan tüm son rakamı bulmak çok için, N 2 bulmaktır n 2 mod 10 tümü için 0 <= n < 10 . Her sonuç olası bir son rakamdır. Base-m için tüm 0 <= n < m için n 2 mod m bulabilirsiniz .
N girişi verildiğinde, Base-N'de mükemmel bir kare için tüm olası son rakamları veren bir program yazın (kopyalar olmadan). Sen varsayabiliriz N büyükse 0 ve o N o küçük yeterlidir N 2 taşma (eğer giden tüm yol boyunca test edebilirsiniz vermezse N 2 , sana kek noktaları sınırlı miktarda vereceğiz ama biliyorum brownie noktalarının gerçek noktalara döviz kuru bire sonsuzdur).
Testler:
Input -> Output
1 -> 0
2 -> 0,1
10 -> 0,1,5,6,4,9
16 -> 0,1,4,9
31 -> 0,1,2,4,5,7,8,9,10,14,16,18,19,20,25,28
120 -> 0,1,4,9,16,24,25,36,40,49,60,64,76,81,84,96,100,105
Bu kod golf , bu yüzden standart kurallar geçerlidir!
(Bunu çok kolay bulursanız veya konuyla ilgili daha ayrıntılı bir soru istiyorsanız, şu soruyu göz önünde bulundurun: Karesel kuadratik kalıntı testi için tabanların minimum kapağı .