Ruff in pre-commit
This commit is contained in:
40
src/project_euler_python/problems_001_050/Problem041.py
Normal file
40
src/project_euler_python/problems_001_050/Problem041.py
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Created on 29 Jun 2021
|
||||
|
||||
@author: David Doblas Jiménez
|
||||
@email: daviddoji@pm.me
|
||||
|
||||
Solution for problem 041 of Project Euler
|
||||
https://projecteuler.net/problem=41
|
||||
"""
|
||||
|
||||
from project_euler_python.utils import is_prime, timeit
|
||||
|
||||
|
||||
def is_pandigital(number):
|
||||
number = sorted(str(number))
|
||||
check = [str(i) for i in range(1, len(number) + 1)]
|
||||
if number == check:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
@timeit("Problem 041")
|
||||
def compute():
|
||||
"""
|
||||
We shall say that an n-digit number is pandigital if it makes
|
||||
use of all the digits 1 to n exactly once. For example, 2143 is
|
||||
a 4-digit pandigital and is also prime.
|
||||
|
||||
What is the largest n-digit pandigital prime that exists?
|
||||
"""
|
||||
|
||||
for ans in range(7654321, 1, -1):
|
||||
if is_pandigital(ans):
|
||||
if is_prime(ans):
|
||||
return ans
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(f"Result for Problem 041: {compute()}")
|
||||
Reference in New Issue
Block a user