OFFSET
0,3
PROG
(PARI) digitposcbrt(n, m) = \ cbrt expansion { local(x, y, r, dot); for(x=0, n, r = (x^(1/3)); if(iscube(x), y=find(Str(floor(r)), m), y=find(Str(r), m); dot=find(Str(r), "."); if(dot < y, y--); ); if(y, print1(y", "), print1(-1", ") ) ) } find(str, match) = \Return the position of the first occurrence of string \match in string str { local(lnm, lns, x, c, i); str=Str(str); \This allows leaving quotes off input match=Str(match); c=0; i=0; lns=length(str); lnm=length(match); if(lnm>1, i=1); x=1; while(x<=lns-lnm+1, if(mid(str, x, lnm)== match, break, x++); ); if(x>lns, return(0), return(x)) } mid(str, s, n) = \ Get a substring of length n from string str starting at position s in str. { local(v, ln, x, tmp); v =""; tmp = Vec(str); ln=length(tmp); for(x=s, s+n-1, v=concat(v, tmp[x]); ); return(v) } iscube(n) = { local(r); r = n^(1/3); if(floor(r+.5)^3== n, 1, 0) }
CROSSREFS
KEYWORD
base,easy,sign
AUTHOR
Cino Hilliard, Dec 24 2006
STATUS
approved