素数,又称质数,在一个大于1的自然数中,除了1和此整数自身之外,不能被其他自然数整除的数。
比1大但不是素数的数称为合数。
1和0既不是素数,也不是合数。
算术基本定理证明每个大于1的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的。
 -module(get_prime).

 -compile(export_all).

 test_cost_time(N) ->
% N为传入具体的数量,这里使用erlang自带的timer:tc测试所消耗时间
timer:tc(?MODULE,get_prime,[N]). get_prime(N) ->
length(get_prime(2, N, [])). get_prime(Seq, Seq, List) ->
List; get_prime(Seq, N, List) ->
Rec = for_prime(Seq),
if
Rec =:= null ->
get_prime(Seq + 1, N, List);
true ->
get_prime(Seq + 1, N, [Rec | List])
end. %判断某一个具体的数是否为质数
for_prime(Seq) ->
SqrtValue = trunc(math:sqrt(Seq)),
for_prime(Seq, lists:seq(2, SqrtValue), 1). for_prime(_Seq, [], 0) ->
null; for_prime(Seq, [], _) ->
Seq; for_prime(_Seq, _, 0) ->
null; for_prime(Seq, [Num | List], _) ->
for_prime(Seq, List, Seq rem Num).

结果如下:


前一个为消耗的微秒数,后一个为N以内总共有多少个质数. 
在erlang中,随着数字的扩大,其消耗的时间也是急剧增加的,暴露了erlang计算能力较差的缺点。
说明,erlang不适合做计算密集型的场景,而其特点还是在IO密集型的场景(如网关等)。

erlang 求N以内的质数的更多相关文章

  1. 求1000以内的质数c语言

    之前在做求1000以内的质数的时候,我们一般能想到的就是从3~(根号)no,逐一和no除,如果存在某个i使得  i|no成立的话,说明no不是质数(“i|no”是i整除除no的意思): 在<明解 ...

  2. 求n以内的质数(质数的定义:在大于1的自然数中,除了1和它本身意外,无法被其他自然数整除的数)

    思路: 1.(质数筛选定理)n不能够被不大于根号n的任何质数整除,则n是一个质数2.除了2的偶数都不是质数代码如下: /** * 求n内的质数 * @param int $n * @return ar ...

  3. 编程&blog处女篇-用C#求100以内的质数

    using System;namespace Loops{ class Program { static void Main(string[] args) { /*局部变量定义*/ int i, j; ...

  4. Java实现 基础算法 求100以内的质数

    public class 求质数 { public static void main(String[] args) { for (int i = 2; i < 100; i++) { int t ...

  5. 数论-求n以内的质数

    一.埃拉托斯特尼筛法 名字很高大上,然而并没有什么卵用…… 思路: 在把<=√n的质数所有的<=n的倍数剔除,剩下的就都是质数了,很容易理解…… 复杂度O(nloglogn) #inclu ...

  6. 求n以内的质数的数量

  7. python-找出100以内的质数

    质数:就是只能被1和本身整除的数,1除外,如2,3,5,7,11,13等等 ##求一百以内的质数(1和本身除尽的数)if __name__ == '__main__': list=[] flag=Fa ...

  8. while做法1.兔子生兔子 2.求100以内质数的和3.洗发水15元 牙膏5元 香皂2元 150元的算法

    1.兔子生兔子 2.求100以内质数的和 3.150块钱花完问题

  9. while:1.兔子生兔子问题 2.打印菱形 3.求100以内质数的和4.洗发水15元一瓶,牙膏5元一支,香皂2元一块,150元刚好花完

    1.兔子生兔子问题: 2.打印菱形 3.求100以内质数的和 4.洗发水15元一瓶,牙膏5元一支,香皂2元一块,150元刚好花完有多少种情况?

随机推荐

  1. hdu 1512 Monkey King 左偏树

    题目链接:HDU - 1512 Once in a forest, there lived N aggressive monkeys. At the beginning, they each does ...

  2. 命令行解析函数:getopt/getopt_long

    参考: http://blog.csdn.net/zhangyang0402/article/details/5671410 http://www.cnblogs.com/gnuhpc/archive ...

  3. Facebook KeyHash生成方法

    1. 去https://code.google.com/p/openssl-for-windows/downloads/list下载OpenSSL工具 2.  在C盘根目录下新建一个openssl的文 ...

  4. JMeter之Ramp-up Period(in seconds)说明(可同时并发)(转载)

    Ramp-up Period(in seconds) [1]决定多长时间启动所有线程.如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行. ...

  5. Ubuntu14.04进行配置符号链接arm-2009q3.tar.bz2

    进入系统终端:cd /usr/local/ 创建文件夹arm:并进去arm,将winshare共享文件夹里面的文件/arm-2009q3复制到arm文件夹中; tar -jxvf  arm-2009q ...

  6. fabricjs 高级篇(自定义类型)

    原文:https://www.sitepoint.com/fabric-js-advanced/ <html> <head> <script src='./js/fabr ...

  7. How to Clear setInterval() without Knowing the ID

    ProblemDeclaring a setInterval() without keeping a reference to it (which is returned from the funct ...

  8. 2017.3.31 spring mvc教程(六)转发、重定向、ajax请求

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  9. ant create-path 报不允许匹配[xX][mM][1L]错误

    将build.xml配置文件的第一行 <?xml version="1.0" encoding="UTF-8"?> 空格去掉

  10. 《深入理解Android 卷III》第二章 深入理解Java Binder和MessageQueue

    <深入理解Android 卷III>即将公布.作者是张大伟.此书填补了深入理解Android Framework卷中的一个主要空白,即Android Framework中和UI相关的部分. ...