परिसर
एक रात, मैं सिर्फ संख्याओं पर विचार कर रहा था। मुझे 7, 10, 12, 13 और अधिक जैसे नंबरों के बारे में कुछ अनोखा पता चला। वे वर्गों के वर्ग हैं! मतलब, कि जब चुकता किया जाता है, तो स्वयं वर्ग शामिल होते हैं। OEIS उन्हें वर्ग कहता है जो दो या दो से अधिक वर्गों का एक दशमलव संयोजन है।
ऐसी संख्याओं के उदाहरणों में 7 (49 में 2 2 और 3 2 ) 13 (169 में 4 2 और 3 2 ) और 20 (400 में 2 2 और 0 2 ) शामिल हैं। अन्य उदाहरणों में 37 शामिल हैं, क्योंकि 1369 एक शब्द है क्योंकि इसे 1, 36 के रूप में विभाजित किया जा सकता है और 9. 1444 (38 2 ) एक शब्द है क्योंकि इसे 1, 4, 4, 4 के रूप में विभाजित किया जा सकता है। मैंने इसके बारे में मठ से पूछा .SE, और यह मेरे नाम पर रखा गया था!
चुनौती
एक प्रोग्राम डिज़ाइन करें जो TanMath नंबर को प्रिंट करता है। संख्या n को देखते हुए (1 से शुरू), nth TanMath नंबर, T (n) प्रिंट करें।
एक कोड उदाहरण के रूप में:
>> 1
>> 7
या
>> 4
>> 13
संदर्भ पायथन कार्यान्वयन (धन्यवाद @ मार्टिनबटनर और @ Sp3000!):
from math import sqrt
n = input()
def r(digits, depth):
z = len(digits)
if z < 1:
return (depth > 1)
else:
for i in range(1, z+1):
t = int(digits[:i])
if sqrt(t).is_integer() and r(digits[i:], depth+1):
return True
return False
i=0
t=0
while t < n:
i += 1
if r(str(i**2), 0):
t += 1
print i
यहां पहले 100 नंबरों की सूची दी गई है:
१० १२ १३ १ ९ २० २० ३५ ३५ ३ 38 ३ 12 ४० ४० ४४ ५० ६० ६० ६० 20० 13० १०० ९ ५० १०५ १०५ १०५ ११० १२० १२० १२० १२० १२० १२० १०० १ 20० १ ९ ० १ ९ ० २०१० २०५ २० ९ २०१ २१२ २२० २२३ २३० २३० २५० २५० २५० २ 22० २५० २०५ ३०६ ३०६ ३०५ ३१५ ३२५ ३४५ ३४५ ३४४ ३४४ ३४४ ३६५ ३६० ३ ९ ३ ३ 3 ९ ३9 ९ ३ 390 ९ ३ 39 ९ ४०४ ४०५ ४०४ ४०४ ४५४ ४५० ४५ 480० ४ 480५ ४ 480० ४ 480 480४ 240 240 में ४२० ३ 240४ ३५ 240 ३५४ ३५० ३३५ ३५० ३३० ३५० ३३० ३५० ३३० ३५० ३४०४ ४५ 420४ ४५४70० ४५४70५ ४ 480० ४ 480० 480४ 240४ 240 240४ 240४ 240 240 240
यह एक कोड गोल्फ है, इसलिए सबसे छोटा कोड जीतता है!
सौभाग्य!