JSFiddle - React, Tailwind, and code Playground
JavaScript
function issq(r)
{
p=r|0;
q=Math.floor(Math.sqrt(p));
return q&&q*q==p;
}
function sndd(n)
{
c=0;
s=""+n;
for(i=0;i<s.length;i++)
for(j=i+1;j<=s.length;j++)
if(issq(t=s.substring(i,j))&&t[0]!='0')
c++;
return c/s.length;
}
function snddr(a,b)
{
d=m=0;
for(g=a;g<=b;g++)
if((t=sndd(g))>d)
d=t,m=g;
return m;
}
w=function(x){document.writeln(x);};
w('<pre>');
a=14000;
b=15000;
z=snddr(a,b);
w(z + ": " + sndd(z));
a=300;
b=500;
z=snddr(a,b);
w(z + ": " + sndd(z));
w('</pre>');