bacmive


私信TA

用户名:bacmive

访问量:19734

签 名:

努力、奋斗

等  级
排  名 299
经  验 5601
参赛次数 0
文章发表 36
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

#include <stdio.h>
#include <stdlib.h>

//Eratosthenes筛选法求素数

int main()
{
    int i,j,n;
    scanf("%d",&n);
    if(n<=1) return 0;
    if(n==2)
        {
            printf("2\n");
            return 0;
        }
    int *isPrime=(int *)malloc((n+1)*sizeof(int));
    for(i=0;i<=n;i++) isPrime[i]=1;
    isPrime[0]=isPrime[1]=0;


    for(i=4;i<=n;i+=2) isPrime[i]=0;

    for(i=3;i*i<=n;i+=2)
        if(isPrime[i])
        {
            for(j=i*2;j<=n;j+=i)
                isPrime[j]=0;
        }

    for(i=2;i<=n;i++)
    {
        if(isPrime[i]) printf("%d\n",i);
    }

    free(isPrime);
    return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »