您的位置:首页 > 其它

Project Euler Problem 60

2009-10-24 17:18 218 查看
Project Euler Problem 60

两种思路都是枚举,不过处理细节有些不同。

假设:题目中描述的关系,我们称之为关系P,两个素数满足关系P。 我们已经生成一个素数表。其中存放着从小到大的很多素数。

第一种思路:

1 我们为每一个素数,生成一个链表,链表中从小到大存放与表头元素满足关系P的素数。

2 任何两个链表只要非表头元素部分存在相投元素,那么它就是一个满足关系P的三元组。

3 在找到的一个三元组的基础上不断扩充知道找到一个五元组。当然此五元组可能是解,也可能不是。

找到其他满足此种关系的五元组,然后选择一个最小。

第二种思路:

把一维的素数表扩展成为2维的满足关系P的二维表。只要两个素数i,j满足关系P,这map[i][j]=1;(这里可以利用映射来节约空间,也可以不用做这一优化)

然后问题转化为找一个彼此满足map[i][j]=1的五元组。用枚举。

问题启示:两种扩展一维为二维的思路。

Answer:26033
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: