หลักฐาน
คืนหนึ่งฉันแค่ใคร่ครวญเรื่องตัวเลข ฉันค้นพบเกี่ยวกับสิ่งที่ไม่เหมือนใครเกี่ยวกับตัวเลขเช่น 7, 10, 12, 13 และอื่น ๆ พวกมันเป็นสี่เหลี่ยมกำลังสอง! ความหมายที่ว่าเมื่อยกกำลังสองจะประกอบด้วยกำลังสองของตัวเอง OEIS เรียกพวกมันว่า Squares ซึ่งเป็นการแบ่งส่วนทศนิยมของ Squares สองตัวขึ้นไป
ตัวอย่างของตัวเลขดังกล่าว ได้แก่ 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) พิมพ์หมายเลข TanMath ที่ n, T (n)
เป็นตัวอย่างรหัส:
>> 1
>> 7
หรือ
>> 4
>> 13
การใช้งาน Python อ้างอิง (ขอบคุณ @ MartinBüttnerและ @ 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 ตัวแรก:
7 10 12 13 19 20 21 30 35 37 38 40 41 44 50 57 60 65 70 80 90 95 97 100 102 105 107 108 110 112 119 120 121 125 129 130 138 140 140 160 160 170 180 190 191 200 201 204 205 209 210 212 220 223 230 240 250 253 260 270 280 285 290 300 305 306 310 315 320 330 330 340 342 343 345 348 350 360 369 370 375 379 380 390 397 400 402 405 404 404 404 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 4 5 5 5 5 5 5 5 5 5
นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ!
โชคดี!