埃氏筛法

#include <iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int vis[100100];
void su()
{
    int i,j;
    memset(vis,0,sizeof(vis));
    vis[0]=vis[1]=1;
    for( i=0;i<10000;i++)
        if(vis[i]==0)
            for( j=i+i;j<10000;j=j+i)
              vis[j]=1;
}

int main()
{
    int t;
    su();
    while(scanf("%d",&t)==1)
    {
        int m;
        int sum=0;
        while(t--)
        {
            scanf("%d",&m);
            if(vis[m]==0)
              sum++;
        }
        printf("%d\n",sum);
    }
    return 0;
}


版权声明:本文为nucshiyilang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。