1.
print sum(i for i in range(1000) if not (i%3 and i%5))
2.
def fibonacci(max):
x=1
y=2
yield 1
yield 2
while y<max:
x,y=y,x+y
yield y
print sum(i for i in fibonacci(4000000) if (1+i)%2 )
3.
下载这个脚本
http://infohost.nmt.edu/tcc/help/lang/python/prime.html
print max(Prime().factorize(600851475143))
4.
def is_reverse(x):
result=[]
while x:
result.append(x%10)
x=x/10
for i in range(len(result)/2):
if result[-i-1]!=result[i]:
return False
return True
digit3=range(100,1000)
max=0
for i in digit3:
for j in digit3:
r=i*j
if is_reverse(r):
if is_reverse(r)!=True:print r
if r>max:
max=r
print max
5.
prime_list = lambda x:[
i for i in range(2, x+1)
if all([i%x for x in range(2, int(i**0.5+1))])
]
"""
2**4<20
3*2<20
"""
print reduce(lambda x,y:x*y,prime_list(20))*(2**3)*3
我的4是这样的:
maxvalue = 0
for i in xrange(100, 1000):
for j in xrange(i, 1000):
intresult = i * j
strresult = str(intresult)
if strresult == strresult[::-1]:
if intresult > maxvalue:
maxvalue = intresult
print maxvalue
> 5.
>
> prime_list = lambda x:[
> i for i in range(2, x+1)
> if all([i%x for x in range(2, int(i**0.5+1))])
> ]
> """
> 2**4<20
> 3*2<20
> """
> print reduce(lambda x,y:x*y,prime_list(20))*(2**3)*3
>
我的5是这样的:
def lcm(a, b):
return lcm(b, a%b) if b else a
print reduce(lambda x, y: x*y/lcm(x,y), xrange(2, 21))
--
Best Regards,
Leo Jay