我必须在Haskell中创建一种特殊的列表。首先,我必须创建一个函数,无论数量是否足够。 大量的数字是在将数字的除数相加时得出的结果大于原始数字的两倍,例如对于
12-> 1,2,3,4,6,12 > 24
我有此解决方案:
abundant n = sum[x | x <- [1..(n-1)], n `rem` x == 0]+n> 2*n
现在我应该创建一个列表,向您显示一定数量的大量数字,该怎么办?
答案 0 :(得分:3)
答案 1 :(得分:2)
相同的答案,但使用列表理解的符号:
[x | x <- [1..], abundant x]
示例:
take 10 ([x | x <- [1..], abundant x])
出场:[12,18,20,24,30,36,40,42,48,54]
根据评论的要求,以下是全部功能:
abundantnr i = take i ([x | x <- [1..], abundant x])
where abundant n = sum[x | x <- [1..(n-1)], n `rem` x == 0]+n> 2*n
用法:
abundantnr 10
出场:[12,18,20,24,30,36,40,42,48,54]