Jump to content

Rare numbers: Difference between revisions

adding lambdatalk
(adding lambdatalk)
Line 3,813:
39: 8,650,327,689,541,457
40: 8,650,349,867,341,457</pre>
 
=={{header|Lambdatalk}}==
Just coding the definition of a rare number without any optimization.
<syntaxhighlight lang="Scheme">
 
{def lt_israre
{lambda {:n}
{let { {:n :n}
{:r {W.reverse :n}}
} {if {and {> :n :r}
{isInt {sqrt {+ :n :r}}}
{isInt {sqrt {- :n :r}}}}
then :n
else}}}}
-> lt_israre
 
{S.map lt_israre {S.serie 1 700000}}
-> 65 621770 // computed in 7650ms
 
Testing:
 
{S.map lt_israre {S.serie 1 280000000}}
-> ... crushes Firefox working in my small iPad Pro.
 
And so I ask javascript some help:
 
LAMBDATALK.DICT["js_israres"] = function() {
var args = arguments[0].trim().split(" "),
i0 = Number( args[0] ),
i1 = Number( args[1] ),
a = [];
 
var israre = function(n) {
var r = Number( n.toString().split("").reverse().join("") );
return (n > r) && (Number.isInteger(Math.sqrt(n+r)))
&& (Number.isInteger(Math.sqrt(n-r)))
};
 
for (var i=i0; i < i1; i++)
if (israre(i)) a.push(i);
return a
};
 
Testing:
 
{js_israres 1 2050000000}
-> [65,621770,281089082,2022652202,2042832002]]
// computed in 784307ms ~ 13 minutes
 
Too slow to try to go further.
 
</syntaxhighlight>
 
=={{header|langur}}==
99

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.