-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolve.sf
118 lines (95 loc) · 3.95 KB
/
solve.sf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/usr/bin/ruby
# Numbers that are both k-gonal and (k+1)-gonal for some k >= 3.
# https://oeis.org/A378245
# Solve in integers: n * (n*k - k - 2*n + 4) / 2 = ( m * (m*(k+1) - (k+1) - 2*m + 4) / 2)
#var limit = 330314391
var limit = 1e10
var terms = [1]
for k in (3..Inf) {
say "\nFinding solutions for k = #{k}"
var found_solutions = 0
for n in (2..Inf) {
var a = (2*n - 1)**2
var b = (4*n*(3*n - 5) + 6)
var c = (8*(n-1)**2 + 1)
var s = (a*k**2 - b*k + c)
if (s.is_square) {
var m = ((isqrt(s) + k - 3) / (2*(k-1)))
if (m.is_int) {
say [n, m, polygonal(n, k)]
++found_solutions
terms << polygonal(n, k)
}
}
break if (polygonal(n, k) >= limit)
}
break if (found_solutions == 0)
}
say "\nTerms <= #{limit}:"
say terms.sort
__END__
# PARI/GP program:
upto(limit) = my(terms=List(1)); for(k=3, oo, my(found=0); for(n=2, oo, my(a = (2*n - 1)^2, b = (4*n*(3*n - 5) + 6), c = (8*(n-1)^2 + 1), s = (a*k^2 - b*k + c), v = n * (n*k - k - 2*n + 4) / 2); if(issquare(s), my(t = sqrtint(s) + k - 3); if(t % (2*(k-1)) == 0, listput(terms, v); found += 1)); if(v >= limit, break)); if(found == 0, break)); Vec(vecsort(terms)); \\ ~~~~
------------------------------------------------------
k - 1!=0, m = (sqrt(3999996000001 k^2 - 11999980000006 k + 7999984000009) + k - 3)/(2 (k - 1))
------------------------------------------------------
Final terms:
[36, 1225, 9801, 40755, 41616, 121771, 297045, 631125, 1212751, 1413721, 2158695, 3617601, 5773825, 8851275, 13117251, 18886285, 26523981, 36450855, 48024900, 49146175, 65151801, 85076025, 94109401, 109597411, 139468635, 175520325, 218664901, 269900415, 330314391]
Terms <= 10000000000:
[36, 1225, 9801, 40755, 41616, 121771, 297045, 631125, 1212751, 1413721, 2158695, 3617601, 5773825, 8851275, 13117251, 18886285, 26523981, 36450855, 48024900, 49146175, 65151801, 85076025, 94109401, 109597411, 139468635, 175520325, 218664901, 269900415, 330314391, 401087665, 483498225, 578925051, 688851955, 814871421, 958688445, 1122124375, 1307120751, 1515743145, 1533776805, 1631432881, 1750185001, 2012771475, 2305963275, 2632360501, 2994706485, 3395891631, 3838957255, 4327099425, 4863672801, 5452194475, 6096347811, 6799986285, 7567137325, 8402006151, 9308979615]
------------------------------------------------------
[36, [3, 8, 6]]
[1225, [3, 49, 35]]
[9801, [4, 99, 81]]
[40755, [5, 165, 143]]
[41616, [3, 288, 204]]
[121771, [6, 247, 221]]
[297045, [7, 345, 315]]
[631125, [8, 459, 425]]
[1212751, [9, 589, 551]]
[1413721, [3, 1681, 1189]]
[2158695, [10, 735, 693]]
[3617601, [11, 897, 851]]
[5773825, [12, 1075, 1025]]
[8851275, [13, 1269, 1215]]
[13117251, [14, 1479, 1421]]
[18886285, [15, 1705, 1643]]
[26523981, [16, 1947, 1881]]
[36450855, [17, 2205, 2135]]
[48024900, [3, 9800, 6930]]
[49146175, [18, 2479, 2405]]
[65151801, [19, 2769, 2691]]
[85076025, [20, 3075, 2993]]
[94109401, [4, 9701, 7921]]
[109597411, [21, 3397, 3311]]
[139468635, [22, 3735, 3645]]
[175520325, [23, 4089, 3995]]
[218664901, [24, 4459, 4361]]
[269900415, [25, 4845, 4743]]
[330314391, [26, 5247, 5141]]
[401087665, [27, 5665, 5555]]
[483498225, [28, 6099, 5985]]
[578925051, [29, 6549, 6431]]
[688851955, [30, 7015, 6893]]
[814871421, [31, 7497, 7371]]
[958688445, [32, 7995, 7865]]
[1122124375, [33, 8509, 8375]]
[1307120751, [34, 9039, 8901]]
[1515743145, [35, 9585, 9443]]
[1533776805, [5, 31977, 27693]]
[1631432881, [3, 57121, 40391]]
[1750185001, [36, 10147, 10001]]
[2012771475, [37, 10725, 10575]]
[2305963275, [38, 11319, 11165]]
[2632360501, [39, 11929, 11771]]
[2994706485, [40, 12555, 12393]]
[3395891631, [41, 13197, 13031]]
[3838957255, [42, 13855, 13685]]
[4327099425, [43, 14529, 14355]]
[4863672801, [44, 15219, 15041]]
[5452194475, [45, 15925, 15743]]
[6096347811, [46, 16647, 16461]]
[6799986285, [47, 17385, 17195]]
[7567137325, [48, 18139, 17945]]
[8402006151, [49, 18909, 18711]]
[9308979615, [50, 19695, 19493]]