A225502 Least m > 0 such that prime(n)*triangular(m) is a triangular number, or 0 if no such m exists.
2, 1, 2, 2, 3, 3, 12, 4, 9, 5, 5, 30, 6, 6, 20, 14, 230, 23, 24, 8, 8, 35, 36, 9, 29, 90, 30, 434, 10, 159, 22, 11, 140, 530, 854, 147, 12, 25, 77, 39, 1938509, 13, 41, 69, 182, 70, 14, 104, 105, 60, 30, 15, 15, 47, 240, 65274, 6314, 16, 17009, 33, 50, 68, 17, 264, 371
Offset: 1
Keywords
Examples
n prime(n) m tri(m) prime(n)*tri(m) 1 2 2 3 6 2 3 1 1 3 3 5 2 3 15 4 7 2 3 21 5 11 3 6 66 6 13 3 6 78 7 17 12 78 1326 8 19 4 10 190
Programs
-
C
#include
#define TOP 300 typedef unsigned long long U64; U64 isTriangular(U64 a) { U64 sr = 1ULL<<32, s, b, t; if (a < (sr/2)*(sr+1)) sr>>=1; while (a < sr*(sr+1)/2) sr>>=1; for (b = sr>>1; b; b>>=1) { s = sr+b; if (s&1) t = s*((s+1)/2); else t = (s/2)*(s+1); if (t >= s && a >= t) sr = s; } return (sr*(sr+1)/2 == a); } int main() { U64 i, j, k, m, tm, p, pp = 1, primes[TOP]; for (primes[0]=2, i = 3; pp < TOP; i+=2) { for (p = 1; p < pp; ++p) if (i%primes[p]==0) break; if (p==pp) { primes[pp++] = i; for (j=p=primes[pp-2], m=tm=1; ; j=k, m++, tm+=m) { if ((k = p*tm) < j) { m=0; break; } if (isTriangular(k)) break; } printf("%llu, ", m); } } return 0; } -
Mathematica
lm[n_]:=Module[{m=1,p=Prime[n]},While[!OddQ[Sqrt[8(p (m(m+1))/2)+1]], m++];m]; Array[lm,68] (* Harvey P. Dale, Mar 16 2018 *)
Comments