标签:
第1行:1个正整数n,表示数字的个数,2≤n≤1,000,000。
第1行:1个整数,表示从1到n中质数的个数
#include <iostream> #include <sstream> #include <fstream> #include <string> #include <vector> #include <deque> #include <queue> #include <stack> #include <set> #include <map> #include <algorithm> #include <functional> #include <utility> #include <bitset> #include <cmath> #include <cstdlib> #include <ctime> #include <cstdio> #include <cstring> using namespace std; typedef long long ll; #define MOD 1000000007 #define MAX 1000010 int N,K,Q; bool isprime[MAX]; int primelist[MAX]; int primecout=0; void soo() { for(int i=2; i<=N; i++) { isprime[i]=true; } for(int i=2; i<=N; i++) { if(isprime[i]) { primecout++; primelist[primecout]=i; } for(int j=1; j<=primecout; j++) { if (i * primelist[j] > N) break; isprime[i * primelist[j]] = false; if(i % primelist[j]==0) break; } } } int main() { // freopen("data.in.txt","r",stdin); cin>>N; memset(primelist,0,sizeof(0)); soo(); cout<<primecout<<endl; // for(int i=1; i<=primecout; i++) // cout<<primelist[i]<<endl; return 0; }
标签:
原文地址:http://www.cnblogs.com/cshg/p/5380313.html