Permuted multiples :Problem 52 : Project Euler
Python Code
def permutedMultiples():
x = 1
while True:
n1 = str(2*x)
n2 = str(3*x)
n3 = str(4*x)
n4 = str(5*x)
n5 = str(6*x)
if len(n1) != len(n2) != len(n3) != len(n4) != len(n5):
x = x + 1
continue
l1 = [0 for i in range(len(n1)) ]
l2 = [0 for i in range(len(n2)) ]
l3 = [0 for i in range(len(n3)) ]
l4 = [0 for i in range(len(n4)) ]
l5 = [0 for i in range(len(n5)) ]
for i in range (len(n1)):
l1[i] = n1[i]
l2[i] = n2[i]
l3[i] = n3[i]
l4[i] = n4[i]
l5[i] = n5[i]
l1.sort()
l2.sort()
l3.sort()
l4.sort()
l5.sort()
if l1 == l2 == l3 == l4 == l5:
break
print "Loop variable",x
x = x +1
print "x= :",x
print "2x=:",n1
print "3x=:",n2
print "4x=:",n3
print "5x=:",n4
print "6x=:",n5
permutedMultiples()
It can be seen that the number, 125874, and its double, 251748, contain exactly the same digits, but in a different order.
Find the smallest positive integer, x, such that 2x, 3x, 4x, 5x, and 6x, contain the same digits.
Find the smallest positive integer, x, such that 2x, 3x, 4x, 5x, and 6x, contain the same digits.
Python Code
def permutedMultiples():
x = 1
while True:
n1 = str(2*x)
n2 = str(3*x)
n3 = str(4*x)
n4 = str(5*x)
n5 = str(6*x)
if len(n1) != len(n2) != len(n3) != len(n4) != len(n5):
x = x + 1
continue
l1 = [0 for i in range(len(n1)) ]
l2 = [0 for i in range(len(n2)) ]
l3 = [0 for i in range(len(n3)) ]
l4 = [0 for i in range(len(n4)) ]
l5 = [0 for i in range(len(n5)) ]
for i in range (len(n1)):
l1[i] = n1[i]
l2[i] = n2[i]
l3[i] = n3[i]
l4[i] = n4[i]
l5[i] = n5[i]
l1.sort()
l2.sort()
l3.sort()
l4.sort()
l5.sort()
if l1 == l2 == l3 == l4 == l5:
break
print "Loop variable",x
x = x +1
print "x= :",x
print "2x=:",n1
print "3x=:",n2
print "4x=:",n3
print "5x=:",n4
print "6x=:",n5
permutedMultiples()
No comments:
Post a Comment