- 浏览: 25082 次
- 性别:
- 来自: 上海
最新评论
-
mxzodiac:
其实可以倒序求平方根,对最大整除数递减相除,直到最后一个就是最 ...
找出特定数字的最大质因数 -
danielzhang0212:
在euler project做题,不会了就搜到你的帖子了。分析 ...
求能分解为两个三位数乘积的最大回文数 -
chyanog:
这个方法有点儿繁琐了,素性判断没有必要的
找出特定数字的最大质因数
文章列表
向日葵公主是在河东岸边遇见驴的。驴是黑色的,但白嘴白肚白蹄。
公主想过河去,河西的城堡里有等着娶她的王子。
河不算深,但她穿着一身美丽的嫁衣,她怕河水会浸湿她的衣裙。
驴说:“想让我驮你 ...
- 2009-12-04 09:54
- 浏览 865
- 评论(0)
平时我一直使用的都是文本编辑器,windows 下使用 e-texteditor, 喜欢其中的 blackboard 配色主题和 textmate 的 snippet 功能。 在linux下一直用vim,喜欢他的就键盘输入模式,手不离开键盘确实感觉轻松了很多。
最近 netbeans 越做越好,在试用后确实让我这个还活在文本编辑器时代的人小high了一把。由于 netbeans 强大的插件机制,已经有人把 vim 的键盘模式做成插件了。 需要的人可以到 http://jvi.sourceforge.net/ 下载。
整个插件的安装过程也很简单:
1. 解压插件压缩包
2. 打开 netbea ...
- 2009-10-24 10:54
- 浏览 5703
- 评论(0)
注:所谓回文数就是正序和倒序相等的数字,好比9009的倒序还是9009
在题目中,我们已经知道了这个回文数是2个三位数的乘积, 那我们可以很轻松的写出代码。
#定义数字倒转函数
def reverse(num):
strnum = str(num)[::-1]
return int(strnum)
max = None
for a in range(100, 1000):
for b in range(100, 1000):
rs = a * b
if rs == reverse(rs) and rs > m ...
- 2009-10-17 10:49
- 浏览 3523
- 评论(1)
Yii已经为我们提供了很好的控制台功能,我们可以利用控制台创建webapp,controller, action等来加速我们的开发。同时我们还可以自己来扩展控制台应用(console application)来满足我们更多的项目需求。
console app 和 web app 类似,我们需要一个入口文件,默认的情况我们可以在protected目录发现这些文件(yiic.php, yiic, yiic.bat), 其中yiic.php为入口文件,yiic为linux的执行文件,yiic.bat为windows上的执行文件。这3个文件会在我们创建webapp的时候自动生成, 如果没有我们也可以手 ...
- 2009-10-16 06:45
- 浏览 2786
- 评论(0)
首先我们来看个例子:
13195的质因数为 5, 7, 13, 29, 其中29就是最大的质因数。
现在让我们来计算600851475143的最大质因素。
当看到这个问题的时候,我们首先要判断哪些是质数,而这些质数中又有哪些是可以被600851475143整除的。因此需我们要有个数:index 不断增长,并且找出index中的质数,然后计算index是否可以被num整除,如果可以的话,重设num为被整除后的值。 很明显这操作是个循环,有一点可以肯定,就是在index的增长过程中,永远不可能大于num,因此我们的循环也有了范围判断了
下面我们来写代码:
from math import sq ...
- 2009-10-14 22:21
- 浏览 6511
- 评论(2)
首先我们知道斐波纳契数列是:
1,2,3,5,8,13 ..........
这个数列中的一个数等于前面两个数的和, 我们可以用一个公式表示:
F(n) = F(n-1) + F(n-2)
有了这个概念我们可以很方便的写出代码:
limit = 4000000
a = 0
b = 1
sum = a + b
while a + b <= limit:
c = a + b
a, b = b, c
if c % 2 != 0:
sum += c
print sum
现在我们看看是不是还能提高代码的效率
通过观察我们得到的 ...
- 2009-10-13 09:41
- 浏览 1203
- 评论(0)
看到这道题后第一个想法是用循环
sum = 0
for i in range(3, 1000):
if i % 3 == 0 or i % 5 == 0:
sum += i
print sum
这无疑是一种非常偷懒的方法, 方便了我们的大脑,但执行效率明显不行。
再想下, 我们可以这么做:
在1-1000中, 3的倍数最小的是3, 最大的是999。 5的倍数最小的是5, 最大的是995。 3和5的倍数其中肯定有交集,而他们肯定是15的倍数,那15的倍数最小的是15, 最大的是990。
我们要的答案应该是:3的倍数的和 + 5的倍数的和 - 15的倍数的和 ...
- 2009-10-12 18:24
- 浏览 4491
- 评论(0)