haskell,计算列表中有多少个质数
|
我是Haskell的新手,目前需要一个函数'f \',给定两个整数,该函数将返回两个函数之间的质数(即,大于第一个整数但小于第二个整数)。
Main> f 2 4
1
Main> f 2 10
3
到目前为止,这是我的代码,但是效果很好。有什么建议么?谢谢..
f :: Int -> Int -> Int
f x y
| x < y = length [ n | n <- [x..y], y \'mod\' n == 0]
| otherwise = 0
没有找到相关结果
已邀请:
3 个回复
瞥同忙接
,
),在Haskell中用
表示。 您的原始性测试有缺陷;您正在测试因子ѭ3factors。 要将函数名称用作中缀运算符,请使用反引号(`),而不是单引号(\')。 尝试以下方法:
读者练习:实施ѭ7。请注意,它仅需一个参数。
抵舵
从
到
的列表中画出n。
只选择均匀地除以y的那些“ 12”。
找出有多少这样的
。 您的代码当前要做的是找出x和y(含)之间的多少个数字是y的因数。因此,如果您执行
,则列表将为
(均分4的数字),长度为2。如果您执行
,则列表将为`[2,5,10](均分的数字除以10),则长度为3。 重要的是,您必须自己理解为什么代码不起作用。在这种情况下,这只是错误的算法。对于查找数字是否为质数的算法,以及其他许多来源,您可以查看Wikipedia文章:Primality test。
锹缄