素数序列的生成及其应用 Advanced Version 1

算法依据:

若某大于1的整数N的算术平方根以内的所有素数都不能整除N,那么N是素数。

数据容器:

小型数组BUFFER、二进制文件CACHE

程序特性:

理论上使用极少的内存(0.5MB左右)就能获取unsigned long long能表示的最大值以内的全部素数(实际能获取的素数个数会受到硬盘容量的制约)

点击下载源代码

原文地址:https://www.cnblogs.com/yawenunion/p/8978048.html

时间: 2024-10-29 19:01:11

素数序列的生成及其应用 Advanced Version 1的相关文章

素数序列的生成及其应用(采用了自研的高效算法)

问题: 2000以内的素数有哪些? 她的手机号是素数吗? 思路: 问题归类: 怎样获取n以内的所有素数呢? 怎样高效地判定一个正整数是否为素数呢? 假设已知: 第一个素数是2,第二个素数是3: 断定某正整数n确实为素数的依据是:当且仅当 若不超过n的算数平方根的所有素数都不能整除n,那么就断定n为素数. 酝酿策略: 先解决"获取n以内的所有素数"的问题,然后应用其结果来解决"高效地判定一个正整数是否为素数"的问题. 从第三个待定素数开始,以后总是把下一个候选素数的初

生成素数序列----埃拉托斯特尼筛法

下面是埃拉托斯特尼筛法的实现代码: boolean[] sieveOfEratosthenes(int max) { boolean[] flags = new boolean[max + 1]; int count = 0; init(flags);//将flags中0,1元素除外的所有元素设为true int prime = 2; while (prime <= max) { //划掉余下为prime倍数的数字 crossOff(flags, prime); //找出下一个为true的值 p

LeetCode 格雷码序列的生成

问题概述:在一组数的编码中,若随意两个相邻的代码仅仅有一位二进制数不同.则称这样的编码为格雷码. 2位数的格雷码序列:00 : 001 : 111 : 310 : 2找规律:假设要求n位的格雷码,先要求出n-1位的格雷码. 循环上一次格雷码的每一位,都会生成两个新的格雷码: 统计'1'出现的次数假设为偶数: 两个新格雷码分别为xxx1和xxx0假设为奇数: 两个新格雷码分别为xxx0和xxx1 以3位格雷码为例: 由00得:000 = 00+(0)001 = 00+(1) 由01得:011 =

学会构造素数序列

1 #include<iostream> 2 using namespace std; 3 #define max 100 //这里默认构造100以内的素数 4 int p[max], a[max]; 5 int main() 6 { 7 for (int i = 2; i*i < max; i++) 8 { 9 for (int j = i; j*i < max; j++) //i,j相乘得到的肯定不是素数 10 p[i*j] = 1; //数组p用来标记不是素数的元素 11 }

部分和序列的生成

部分和序列应用很广泛,但是我写的时候总是要想一想,花一点时间,而且总怕写错,现在记下来一个模板. int a[N],b[N],n; fill(b,b+N,0); cin>>n; for (int i=1;i<=n;i++) {cin>>a[i];b[i]=b[i-1]+a[i];} 得到的从1到n(全闭)的序列就是部分和序列,b[n]就是从a[1]到a[n]的所有元素之和. 原文地址:https://www.cnblogs.com/yichuan-sun/p/9749082.

jquery递归遍历xml文件,形成ul-li序列,生成树结构(使用了treeview插件)

treeview插件从这里获得,下载的文件中有demo,看demo文件夹里面的index.html文件就差不多知道如何使用该控件了,在我做的项目里用到的部分代码截图如下(在引用下面的js文件前要先引用jquery文件): <div id="project_list1"> <ul id="browser" class="filetree"> <li><span class="folder"

用生成器实现素数序列

1 def geneList(): 2 n = 1 3 while True: 4 n += 2 5 yield n 6 7 def myFilter(n): 8 return lambda x : x % n > 0 9 10 def primeFilter(): 11 yield 2 12 mGen = geneList() 13 while True: 14 n = next(mGen) 15 yield n 16 mGen = filter(myFilter(n), mGen) 17 1

序列键生成器之单例模式实现

public class KeyGenerator {    private static KeyGenerator keygen=new KeyGenerator();    private static final int POOL_SIZE=20;    private HashMap keyList=new HashMap(10);    private KeyGenerator(){}    public static KeyGenerator geInstance(){      

序列键生成器之多例模式实现

public class MutilKeyGenerator {    private static HashMap keys=new HashMap();    private static final int POOL_SIZE=20;    private KeyInfo keyInfo=null;    private MutilKeyGenerator(){}    private MutilKeyGenerator(String keyName){        keyInfo=ne