美文网首页
质数剔除算法

质数剔除算法

作者: zackD爱rena | 来源:发表于2016-01-09 13:54 被阅读0次
# include<stdio.h>
# include<math.h>


int main()
{
long int prime[1000000 + 1];
long int i, j;
long int m = 0;//记录i的值,为循环变量的辅助变量
for (i = 3; i <= 1000000; i = i + 2)//所有的偶数全部干掉
    prime[i] = 1;
for (i = 3; i <= sqrt((1000000 - 1)); i = i + 2)//第一层取平方数
{
    //printf("i=%d/n",i);
    m = i;
    if (prime[i] == 1)

        for (j = i*i; j <= 1000000; j = i*m)//筛法的第二层。从平方开始如果是存在的就筛掉
        {
            m = m + 2;
            if (prime[j] == 1)
            {
                prime[j] = 0;
                // printf("%d/t",j);//测试用例。用于查看筛掉的数
            }
        }//第二层结束
    //printf( "/n");//测试用例。用于分割筛掉的数。分割间的数之间有相同的差

}//第一层结束 


printf("%ld\n", 2); /*2非奇数故未在循环算法之内,但2是素数,故先输出*/
//打印质数
for (i = 3; i <= 1000000; i = i + 2)
    if (prime[i] == 1)
    {
        printf("%ld\n", i);
    }


return 0;
}

相关文章

  • 质数剔除算法

  • Android 每日算法:猫扑素数、单词反转

    经典算法集锦,不定时更新 一、素数(质数)算法 定义: 质数(prime number)又称素数,有无限个。质数定...

  • 质数算法

    质数的一些定理 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。 每个合数都可以写成几个质数相乘的...

  • 试除法解决质数问题(Python3)

    浅析求解质数问题的一些方法 质数问题是算法中常见的和入门的问题,今天姑且用 "打印100以内所有质数" 这个问题,...

  • 质数判断算法 Go

    说明 质数算法常见于RSA中应用这个方法来判定一个数是否是素数。 代码 代码说明 算法核心就是将参数开根号,然后不...

  • python-计算

    斐波纳契数列代码 判断素数(质数)代码 判断闰年代码 冒泡算法代码

  • 计算机科学及编程导论习题

    习题1:编辑一个程序,显示出第1000个质数。质数的特性是只能被1和自己整除,所以所有算法都由此引开。 偶滴解题

  • 埃筛

    埃筛 给定一个整数N,求出1~N之间的所有质数,称为质数的筛选问题。埃筛线筛都是用于解决这个问题的算法。埃筛的思想...

  • Miller–Rabin

    Miller–Rabin算法用于检测大素数,时间复杂度是使用费马小定理和二次探测检测一个数是否是质数。当p是质数时...

  • 初级算法-数学-计数质数

    统计所有小于非负整数 n 的质数的数量。名次解释:质数:质数是指大于1的自然数中,除了1和它本身以外不再有其他因数...

网友评论

      本文标题:质数剔除算法

      本文链接:https://www.haomeiwen.com/subject/cycqkttx.html