Adopted new convention from template
This commit is contained in:
parent
037fb1de95
commit
60d89e8681
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python
|
||||||
"""
|
"""
|
||||||
Created on 12 Sep 2021
|
Created on 12 Sep 2021
|
||||||
|
|
||||||
@ -9,40 +9,42 @@ Solution for problem 46 of Project Euler
|
|||||||
https://projecteuler.net/problem=46
|
https://projecteuler.net/problem=46
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from utils import timeit, is_prime
|
from utils import is_prime, timeit
|
||||||
|
|
||||||
|
|
||||||
def is_goldbach(number):
|
def is_goldbach(number):
|
||||||
for i in range(number - 1, 1, -1):
|
for i in range(number - 1, 1, -1):
|
||||||
if is_prime(i) and ((number - i) / 2)**0.5 % 1 == 0:
|
if is_prime(i) and ((number - i) / 2) ** 0.5 % 1 == 0:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
@timeit("Problem 46")
|
@timeit("Problem 46")
|
||||||
def compute():
|
def compute():
|
||||||
"""
|
"""
|
||||||
It was proposed by Christian Goldbach that every odd composite number
|
It was proposed by Christian Goldbach that every odd composite number
|
||||||
can be written as the sum of a prime and twice a square.
|
can be written as the sum of a prime and twice a square.
|
||||||
|
|
||||||
9 = 7 + 2×1^2
|
9 = 7 + 2x1^2
|
||||||
15 = 7 + 2×2^2
|
15 = 7 + 2x2^2
|
||||||
21 = 3 + 2×3^2
|
21 = 3 + 2x3^2
|
||||||
25 = 7 + 2×3^2
|
25 = 7 + 2x3^2
|
||||||
27 = 19 + 2×2^2
|
27 = 19 + 2x2^2
|
||||||
33 = 31 + 2×1^2
|
33 = 31 + 2x1^2
|
||||||
|
|
||||||
It turns out that the conjecture was false.
|
It turns out that the conjecture was false.
|
||||||
|
|
||||||
What is the smallest odd composite that cannot be written as the sum
|
What is the smallest odd composite that cannot be written as the sum
|
||||||
of a prime and twice a square?
|
of a prime and twice a square?
|
||||||
"""
|
"""
|
||||||
|
|
||||||
ans = 9
|
ans = 9
|
||||||
while True:
|
while True:
|
||||||
ans += 2
|
ans += 2
|
||||||
if not is_prime(ans) and not is_goldbach(ans):
|
if not is_prime(ans) and not is_goldbach(ans):
|
||||||
return ans
|
return ans
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
print(f"Result for Problem 46 is {compute()}")
|
||||||
print(f"Result for Problem 46: {compute()}")
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user