0053 - Sum of Prime Numbers

#include <iostream>
using namespace std;

#define MAX 1000000

bool is_prime[MAX+1];

void Sieve(void)	{
	for (int i=0; i<=MAX; ++i)
		is_prime[i]=true;
	is_prime[0]=is_prime[1]=false;
	for (int i=2; i<=MAX; ++i)
		if ( is_prime[i] )
			for (int j=i*2; j<=MAX; j+=i)
				is_prime[j]=false;
}

void Slove(int n)	{
	int s=0, number=1;

	while (n)
		if ( is_prime[++number] )	{
			--n;
			s+=number;
		}
	cout << s << endl;
}

int main(void)	{
	int n;

	Sieve();
	while (cin >> n && n)
		Slove(n);
	return 0;
}

エラトステネスの篩使っただけ。。