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
两种思路都是枚举,不过处理细节有些不同。
假设:题目中描述的关系,我们称之为关系P,两个素数满足关系P。 我们已经生成一个素数表。其中存放着从小到大的很多素数。
第一种思路:
1 我们为每一个素数,生成一个链表,链表中从小到大存放与表头元素满足关系P的素数。
2 任何两个链表只要非表头元素部分存在相投元素,那么它就是一个满足关系P的三元组。
3 在找到的一个三元组的基础上不断扩充知道找到一个五元组。当然此五元组可能是解,也可能不是。
找到其他满足此种关系的五元组,然后选择一个最小。
第二种思路:
把一维的素数表扩展成为2维的满足关系P的二维表。只要两个素数i,j满足关系P,这map[i][j]=1;(这里可以利用映射来节约空间,也可以不用做这一优化)
然后问题转化为找一个彼此满足map[i][j]=1的五元组。用枚举。
问题启示:两种扩展一维为二维的思路。
Answer:26033
相关文章推荐
- Project Euler problem 60
- Project Euler Problem 36 Double-base palindromes
- project euler problem14
- Project Euler Problem 16
- Project Euler Problem 17
- 欧拉,projecteuler Problem 83
- Project Euler Problem 11: Largest product in a grid
- project euler problem 5:Smallest multiple
- Project Euler problem 65
- Project Euler Problem 16 Power digit sum
- project euler problem 14
- Project Euler Problem 67 Maximum path sum II
- project euler problem 19 数周末
- project euler problem 32又是暴搜
- [置顶] Project Euler Problem 80-高精度开方-牛顿逼近法
- Largest product in a grid( Project Euler problem 11)
- Project Euler -> problem 4
- Project Euler Problem 9
- Project Euler Problem 32
- Project Euler Problem 50