平方数问题一则
假设完全平方数$a$的十进制表示的各位数字和是$b$如果$b$也是完全平方数,我们称$a$是二重平方数
如果$b$也是二重平方数,则我们称$a$是三重平方数
依次类推
现在请求出$10^24$内的所有二重平方数 :)
看来别人么兴趣做啊 代码
let square = , let s = a * a]
let isSquare = listArray (1, 256) , let s = (/= []) \$ findIndices (==a) square]
let digitsSumn = sum \$ zipWith (*) \$ map (flip (-) 1) \$ map length \$ group \$ sort \$ (show n) ++ "0123456789"
let test n m = [(i, s, ss) | i <- , let s = i * i, let ss = digitsSum s, isSquare!(toInteger ss)]
得到10^12内的结果并保存
writeFile "Result.Txt" \$ show \$ test 1 1000000 呵呵
10^12内
耗时几秒
共160264组解
解的数量太多了
使用Haskell算的啊
耗时多少?
确实太多了
你只求10^12内的而已
Clear;
k = 1;
For[i = 1, i < 10^12 + 1, i++,
a = i^2;
(*二重平方数*)
len = IntegerLength;
s = 0;
b = a;
For[j = len, j > 0, j--,
s += IntegerPart;
a = Mod;
];
t = IntegerPart];
If,
PutAppend; k += 1;];
] // Timing
Print["No.", k]
:)
多谢提醒, 当时有点糊涂了
呵呵, 年纪大了,人一过10岁就有点迷糊了
呵呵 不是吧,我刚回复,你就看到贴了,难道你也一直刷新帖子啊:lol 这个东西有优化算法
在那个平方数字和帖子上的代码可以修改来做
大概不会很长时间就能得到10^24内的 Haskell代码是用最笨的算法写的 呵呵
我现在还看不懂Haskell
只会mathematica穷举