第四题:
第五题:
第六题:
找出能够分解为两个三位数相乘的最大荷花数
- # -*- coding: gb2312 -*-
- def palind(n):
- """判断一个数是否荷花数"""
- str_num = list(str(n))
- str_num.reverse()
- return n == int(''.join(str_num))
- s = [ i*j for i in xrange(99,999) for j in xrange(i,999) if palind(i*j) ]
- print s
- print max(s)
找出1-20的最小公倍数
- # -*- coding: gb2312 -*-
- # 求1-n的最小公倍数
- # 求两个数的最小公倍数的算法:先算出n,m的最大公约数k,然后得出:n*m/k
- # 最大公约数的算法:辗转相除法
- def gcd(n,m):
- return n%m and gcd(m,n%m) or m
- def lcm(n,m):
- return n*m/gcd(n,m)
- print reduce(lcm,xrange(2,21)
找出前一百个自然数的平方和与和平方的差值
这个用python就比较简单了:
- >>> sum( [ i**2 for i in xrange(1,101) ] ) - sum(xrange(1,101))**2
- -25164150