breakにつまづく。

深夜にソースを書いちゃダメーっ!
3問目を解こうと、エラトステネスのふるいを実装しようと試みてちょっと挫折気味。

#include <iostream>
#include <time.h>

using namespace std;


int erasto(int NM){

	int n[50];
	int box[100000];
	int ans=0;
	int p=0;

	for(p=0;p<50;p++)n[p]=0;
	n[0]=2;
	box[0]=0;

	for(p=0;p<10;p++)
	{
		for(int i=1;i<100000;i++)
		{
			if((i%n[p])==0) box[i]=0;
			else box[i]=i;
		}
		
		for(int i=0;i<100000;i++)
		{
			if(box[i]!=0)
			{
				n[p+1]=i;		
				break;したい。
			}
		}	
	}
	ans = n[NM];	
	return ans;

}

int main()
{
	cout<<erasto(1)<<endl;
}