其他分享
首页 > 其他分享> > 埃氏筛法(c语言)

埃氏筛法(c语言)

作者:互联网

//这个是主要步骤的实现代码
for(int i = 2;  i * i <= MAXSIZE; i++)
    {
        if(nums[i])
        {
            for(int j = i + i; j < MAXSIZE; j += i)
            {
                nums[j] = 0;
            }
        }
    }
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100000005
int nums[MAXSIZE]={0, 0};

int main()
{
    int n;
    for(int i = 2; i < MAXSIZE; i++)
    {
         nums[i] = 1;
    }
    for(int i = 2;  i * i <= MAXSIZE; i++)
    {
        if(nums[i])
        {
            for(int j = i + i; j < MAXSIZE; j += i)
            {
                nums[j] = 0;
            }
        }
    }
    printf("输入几组判断数据");
    scanf("%d", &n);
    while(n--)
    {
        int s;
        scanf("%d", &s);
        if(nums[s])
            printf("是素数\n");
        else
            printf("不是素数\n");
    }
    return 0;
}

素数测试用例

标签:埃氏,语言,筛法,nums,int,scanf,MAXSIZE,素数,printf
来源: https://blog.csdn.net/weixin_52258951/article/details/120624250