Add solution for problem 32 in python
This commit is contained in:
parent
d573ed4254
commit
0da9761f00
@ -24,7 +24,7 @@ def main():
|
|||||||
|
|
||||||
end = default_timer()
|
end = default_timer()
|
||||||
|
|
||||||
print('Project Euler, Problem 30')
|
print('Project Euler, Problem 31')
|
||||||
print('Answer: {}'.format(n))
|
print('Answer: {}'.format(n))
|
||||||
|
|
||||||
print('Elapsed time: {:.9f} seconds'.format(end - start))
|
print('Elapsed time: {:.9f} seconds'.format(end - start))
|
||||||
|
75
Python/p032.py
Normal file
75
Python/p032.py
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
from numpy import zeros
|
||||||
|
|
||||||
|
from timeit import default_timer
|
||||||
|
|
||||||
|
def main():
|
||||||
|
start = default_timer()
|
||||||
|
|
||||||
|
n = 0
|
||||||
|
products = zeros(100, int)
|
||||||
|
|
||||||
|
for i in range(2, 100):
|
||||||
|
for j in range(100, 10000):
|
||||||
|
a = i
|
||||||
|
b = j
|
||||||
|
p = a * b
|
||||||
|
|
||||||
|
digits = zeros(10, int)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
d = a % 10
|
||||||
|
digits[d] = digits[d] + 1
|
||||||
|
a = a // 10
|
||||||
|
|
||||||
|
if a <= 0:
|
||||||
|
break
|
||||||
|
|
||||||
|
while True:
|
||||||
|
d = b % 10
|
||||||
|
digits[d] = digits[d] + 1
|
||||||
|
b = b // 10
|
||||||
|
|
||||||
|
if b <= 0:
|
||||||
|
break
|
||||||
|
|
||||||
|
p1 = p
|
||||||
|
|
||||||
|
while True:
|
||||||
|
d = p1 % 10
|
||||||
|
digits[d] = digits[d] + 1
|
||||||
|
p1 = p1 // 10
|
||||||
|
|
||||||
|
if p1 <= 0:
|
||||||
|
break
|
||||||
|
|
||||||
|
k = 0
|
||||||
|
|
||||||
|
if digits[0] == 0:
|
||||||
|
for k in range(1, 11):
|
||||||
|
if k > 9 or digits[k] > 1 or digits[k] == 0:
|
||||||
|
break
|
||||||
|
|
||||||
|
if k == 10:
|
||||||
|
products[n] = p
|
||||||
|
n = n + 1
|
||||||
|
|
||||||
|
products = np.sort(products)
|
||||||
|
|
||||||
|
sum_ = products[0]
|
||||||
|
|
||||||
|
for i in range(1, 100):
|
||||||
|
if products[i] != products[i-1]:
|
||||||
|
sum_ = sum_ + products[i]
|
||||||
|
|
||||||
|
end = default_timer()
|
||||||
|
|
||||||
|
print('Project Euler, Problem 32')
|
||||||
|
print('Answer: {}'.format(sum_))
|
||||||
|
|
||||||
|
print('Elapsed time: {:.9f} seconds'.format(end - start))
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
Loading…
x
Reference in New Issue
Block a user