蹦床素数
考虑由123456789递增组成的1-9长度不等的数字片断称为一个跳跃
由若干长度不等的跳跃组成一个数字,我们称为蹦床数字
比如1234512345678912312341234567
可以记成(5, 9, 3, 4, 7)
如果还为素数,则称为 蹦床素数
现在求10^100内的所有蹦床素数 想明确一下:
1、蹦床素数是否其本身也需为素数(感觉这应是前提条件,但楼主所举例子是合数)?
2、“由若干长度不等…”——也就是说跳跃数不允许重复? 求100的带约束的拆分。
然后对应得到数字组成,判素。 1、跳跃数可以重复
2、当然是素数
3、跳跃次数可以为1
但只有一种可能 (7)
俺举的例子是蹦床数的例子
呵呵 生成集合的
let base =
let to3 x = if (x==1) || (x==4) || (x==7) then 1 else 0
let to3Test x =(/=0) \$ (\x -> x \`mod\` 3 )\$ sum \$ map (to3) x
let prod n = if (n==1) then [, , ,] else 个数太多了。
100拆分成1-9的和的形式有3314203种。然后,对每一种进行排列,数目已经不可想象了。就算每种形式只得到一个素数,那么,也有3314203个蹦床素数,也就是说要判断3314203次100位数的素性,时间上已经无法承受了,趣题就没趣了。 :)
那缩小些, 小于40位的 反一反
考虑由987654321递减组成的1-9长度不等的数字片断
称为一个" 跳崖"
由若干长度不等的" 跳崖" 组成一个数字,我们称为" 跳崖" 数字或"蹦极"数字
比如5432198765432132143217654321
可以记成(5, 9, 3, 4, 7)
如果还为素数,则称为"蹦极"素数
现在求10^100000000000000内的所有"蹦极"素数 呵呵,ls没有计算复杂度的概念啊。 这个题目有趣,算一算。
页:
[1]
2