def is_lychrel(n):
    count = 1
    n = n + int(''.join(reversed(str(n))))
    while count < 50:
        if is_palindrome(n):
            return False
        n = n + int(''.join(reversed(str(n))))
        count += 1
    return True
def is_lychrel(n):
    count = 1
    n = n + int(''.join(reversed(str(n))))
    while count < 50:
        if is_palindrome(n):
            return False
        n = n + int(''.join(reversed(str(n))))
        count += 1
    return True
Example #3
0
'''
Created on 2013-01-25

@author: paymahn
'''

from CommonFunctions import is_palindrome

tally = 0

for i in range(1,10000):
    is_lychrel = True
    num = i
    for j in range(50):
        num = int(str(num)) + int(str(num)[::-1])
        if is_palindrome(num):
            is_lychrel = False
            break
    
    if is_lychrel:
        print i
        tally += 1
    
print tally
# -*- coding: utf-8 -*-

########################################################################
#   Solves problem 36 from projectEuler.net.
#   Finds the sum of the numbers below 1 millon which are both palindromic
#   in their decimal and binary representation.
#   Copyright (C) 2010  Santiago Alessandri
#
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#   You can contact me at [email protected]
#   Visit my wiki at http://san-ss.wikidot.com
########################################################################

from CommonFunctions import is_palindrome

if __name__ == '__main__':
    result = sum(x for x in range(1, 1000000, 2)
                 if is_palindrome(x) and is_palindrome(bin(x)[2:]))
    print("The result is:", result)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

########################################################################
#   Solves problem 36 from projectEuler.net.
#   Finds the sum of the numbers below 1 millon which are both palindromic
#   in their decimal and binary representation.
#   Copyright (C) 2010  Santiago Alessandri
#
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
#    
#   You can contact me at [email protected]
#   Visit my wiki at http://san-ss.wikidot.com
########################################################################

from CommonFunctions import is_palindrome

if __name__ == '__main__':
    result = sum(x for x in range(1, 1000000, 2) if is_palindrome(x) and is_palindrome(bin(x)[2:]))
    print("The result is:", result)