Anonymous user
Rare numbers: Difference between revisions
added simple python implementation. will work on more complex python version next.
(Add Rust implementation) |
(added simple python implementation. will work on more complex python version next.) |
||
Line 4,038:
15 10:42
</pre>
=={{header|Python}}==
===naive===
A simple implementation, just to show how elegant python can be. Searches up to 10^11 in about 3hours w/ pypy on my Intel Core i5.
<lang Python>
# rare.py
# find rare numbers
# by kHz
from math import floor, sqrt
from datetime import datetime
def main():
start = datetime.now()
for i in xrange(1, 10 ** 11):
if rare(i):
print "found a rare:", i
end = datetime.now()
print "time elapsed:", end - start
def is_square(n):
s = floor(sqrt(n + 0.5))
return s * s == n
def reverse(n):
return int(str(n)[::-1])
def is_palindrome(n):
return n == reverse(n)
def rare(n):
r = reverse(n)
return (
not is_palindrome(n) and
n > r and
is_square(n+r) and is_square(n-r)
)
if __name__ == '__main__':
main()
</lang>
=={{header|Quackery}}==
|