diff --git a/project_euler/problem_35/sol1.py b/project_euler/problem_35/sol1.py index 5f023c56a..17a4e9088 100644 --- a/project_euler/problem_35/sol1.py +++ b/project_euler/problem_35/sol1.py @@ -1,4 +1,9 @@ """ +Project Euler Problem 35 +https://projecteuler.net/problem=35 + +Problem Statement: + The number 197 is called a circular prime because all rotations of the digits: 197, 971, and 719, are themselves prime. There are thirteen such primes below 100: 2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, @@ -65,5 +70,13 @@ def find_circular_primes(limit: int = 1000000) -> list[int]: return result +def solution() -> int: + """ + >>> solution() + 55 + """ + return len(find_circular_primes()) + + if __name__ == "__main__": print(f"{len(find_circular_primes()) = }") diff --git a/project_euler/problem_36/sol1.py b/project_euler/problem_36/sol1.py index 39088cf25..13a749862 100644 --- a/project_euler/problem_36/sol1.py +++ b/project_euler/problem_36/sol1.py @@ -1,4 +1,9 @@ """ +Project Euler Problem 36 +https://projecteuler.net/problem=36 + +Problem Statement: + Double-base palindromes Problem 36 The decimal number, 585 = 10010010012 (binary), is palindromic in both bases. @@ -10,17 +15,28 @@ base 10 and base 2. leading zeros.) """ +from typing import Union -def is_palindrome(n): + +def is_palindrome(n: Union[int, str]) -> bool: + """ + Return true if the input n is a palindrome. + Otherwise return false. n can be an integer or a string. + + >>> is_palindrome(909) + True + >>> is_palindrome(908) + False + >>> is_palindrome('10101') + True + >>> is_palindrome('10111') + False + """ n = str(n) - - if n == n[::-1]: - return True - else: - return False + return True if n == n[::-1] else False -def solution(n): +def solution(n: int = 1000000): """Return the sum of all numbers, less than n , which are palindromic in base 10 and base 2.