不大于N的所有素数

算法如下:

#include<stdio.h>
#include<math.h>
void Sieve(int n)
{
    int p,j,i;
    int A[n+1],L[n+1];
    for(p=2;p<=n;p++)
        A[p]=p;
    for(p=2;p<=sqrt(n);p++)
    {
        if(A[p]!=0)
        {
            j=p*p;
            while(j<n)
            {
                A[j]=0;
                j=j+p;
            }
        }
    }
    i=0;
    for(p=2;p<=n;p++)
    {
        if(A[p]!=0)
        {
            L[i]=A[p];
            i++;
        }
    }
    for(p=0;p<i;p++)
        printf("%d ",L[p]);
    printf("\n");
}
void main()
{
    Sieve(25);
}

不大于N的所有素数

时间: 2024-11-11 00:37:45

不大于N的所有素数的相关文章

如何判断素数

在OI与密码学等各个方面,我们经常会遇到需要判断素数的情况.这个问题看似简单,实则不然.判素就像是排序,只会快排是不能走遍天下的,想要成为一名神犇,就需要接触更多的算法. 一:什么是素数 素数,也可以叫做质数.如果一个大于1的自然数,除去1和他本身,不能被其他数字整除,那么他就是一个素数.任何一个大于1的自然数,要么是素数,要么是可以写做一堆素数相乘. 二:素数的性质 (1)质数p的约数只有两个:1和p. (2)初等数学基本定理:任一大于1的自然数,要么本身是质数,要么可以分解为几个质数之积,且

ACM——五位以内的对称素数

http://acm.njupt.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1026 五位以内的对称素数 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:1857            测试通过:395 描述 判断一个数是否为对称且不大于五位数的素数. 输入 输入数据含有不多于50个的正整数(0<n<2^32). 输出 对于每个n,如果该数是不大

Python 中素数的玩法

质数 质数又称素数.指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数.换句话说,只有两个正因数(1和自己)的自然数即为素数.比1大但不是素数的数称为合数.1和0既非素数也非合数.素数在数论中有着很重要的作用. 质数的分布规律是以36N(N+1)为单位,随着N的增大,素数的个数以波浪形式渐渐增多. 孪生质数也有相同的分布规律. 素数,普遍认为的分布规律是没有规律.时而连续出现,时而又相隔很远很远.有远亲.有近邻,地球对面也还有几个好朋友.素数,真的就没有规律吗?合数可以

LightOJ - 1370 Bi-shoe and Phi-shoe

题目链接:http://lightoj.com/login_main.php?url=volume_showproblem.php?problem=1370 题目大意:给N个数a[i], N <= 1e6,问使 Φ(x) >= a[i] 成立的最小x的所有x的和是多少. 解题思路:我们知道的是对于素数 m 来说,phi[m] = m - 1.另一方面,对于一个合数 m 来说, phi[m] < phi[x] , x > m && x 是素数. 因此,我们可以认为,每

poj 3904 Sky Code

点击打开链接 Sky Code Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1562   Accepted: 478 Description Stancu likes space travels but he is a poor software developer and will never be able to buy his own spacecraft. That is why he is preparing

2017.8.9数论课小结

一.先是一些整除的性质: ?整除:若a=bk,其中a,b,k都是整数,则b整除a,记做b|a. ?也称b是a的约数(因数),a是b的倍数 ?显而易见的性质: ?1整除任何数,任何数都整除0 ?若a|b,a|c,则a|b+c, a|b-c ?若a|b,则对任意整数c,a|bc ?传递性:若a|b,b|c,则a|c 例1: ?例题:[CF 762A]k-th divisor ?求n的第k小的约数.如果不存在输出-1 ?1 ≤ n ≤ 10^15, 1 ≤ k?≤?10^9 分析:这道题显然不能用O(

Codeforces Round #232 (Div. 1)

这次运气比较好,做出两题.本来是冲着第3题可以cdq分治做的,却没想出来,明天再想好了. A. On Number of Decompositions into Multipliers 题意:n个数a1,a2, a3...an求n个数相乘与a1*a2*a3*a4...an相等的排列个数. 分析:首先应该对ai分解质因数,求出所有ai中质因数及个数,枚举排列中每个数包含的质因数个数,例如质因数qi,有ni个,相应的排列中数包含质因数qi个数设为x1,x2,....xn, x1+x2+x3..+xn

python yield 进阶(一)

PS:硬说原创 我只能说自己太不要脸了 就当是个搬运工吧 希望对您有帮助 先来看看基础的---重头戏在后面: yield的英文单词意思是生产,刚接触Python的时候感到非常困惑,一直没弄明白yield的用法. 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子: def addlist(alist): for i in alist: yield i + 1 取出alist的每一项,然后把i + 1塞进去.然后通过调用取出每一项: alist = [1, 2, 3, 4] f

Android——硬件加速(Hardware Acceleration(硬件加速)

从Android3.0(API Level 11)开始,Android 2D渲染管道能够更好的支持硬件加速.硬件加速执行的所有的绘图操作都是使用GPU在View对象的画布上来进行的.因为启用硬件加速会增加资源的需求,因此这样的应用会占用更多的内存. 硬件加速在target api大于等于14的情况下,是默认开启的,但是我们也可以显示的开启硬件加速.如果应用程序只使用标准的View和Drawable,那么打开全局硬件加速不会导致任何不良的绘制影响.然而,由于硬件加速并不支持所有的2D图形绘制操作,