-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathp0008.py
executable file
·36 lines (25 loc) · 1.62 KB
/
p0008.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/local/bin/python
import getopt, sys
from operator import mul
def main():
number = 4
string = "73167176531330624919225119674426574742355349194934969835203127745063262395783180169848018694788518438586156078911294949545950173795833195285320880551112540698747158523863050715693290963295227443043557668966489504452445231617318564030987111217223831136222989342338030813533627661428280644448664523874930358907296290491560440772390713810515859307960866701724271218839987979087922749219016997208880937766572733300105336788122023542180975125454059475224352584907711670556013604839586446706324415722155397536978179778461740649551492908625693219784686224828397224137565705605749026140797296865241453510047482166370484403199890008895243450658541227588666881164271714799244429282308634656748139191231628245861786645835912456652947654568284891288314260769004224219022671055626321111109370544217506941658960408071984038509624554443629812309878799272442849091885801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450"
intlist = map(int, list(string))
max_value = 0
max_list = []
opt, args = getopt.getopt(sys.argv[1:], ':n:')
for o, a in opt:
if o == '-n':
number = int(a)
else:
assert False, "unhandled option"
for i in range(len(intlist) - number + 1):
word = intlist[i:i+number]
value = reduce(mul, word, 1)
if value > max_value:
max_value = value
max_list = word
print max_list
print max_value
if __name__ == "__main__":
main()