Here are my solutions from the last set that I never got around to posting:

Problem 3 – I guess I just printed the list and then took the biggest here.

def divisors(n):
divs = set([1])
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
divs.add(i)
divs.add(n/i)
return divs
def isPrime(n):
return len(divisors(n)) == 1
divs = list(divisors(600851475143))
divs.sort()
divs.reverse()
for div in divs:
if isPrime(div):
print div

Problem 4 –

def isPalidrome(num):
numstr = str(num)
for i in range(len(numstr)):
if numstr[i] != numstr[-i-1]:
return False
return True
i = 999
j = 999
prod = i * j
biggest = 0
big_i = 0
big_j = 0
while prod > biggest:
while prod > biggest:
if isPalidrome(prod):
biggest = prod
big_i = i
big_j = j
break
j -= 1
prod = i * j
i -= 1
j = i
prod = i * j
print "Biggest is: ", big_i, " x ", big_j, " = ", biggest

Problem 5 – Okay, this one is cheap, but Carolyn and I figured out that it was super easy to just count which divisors you needed, so there wasn’t really much coding to do. 🙂

print 20*19*9*17*4*7*13*11

Problem 6 – Hmm. Don’t see where I put the source to this one, so maybe I skipped it. I’ll post it with the solutions to next (i.e. this) week’s problems.

Cheers.

### Like this:

Like Loading...

*Related*

Tags: elf, prob3, prob4, prob5

This entry was posted on May 30, 2009 at 1:33 pm and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.

## Leave a Reply