Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

超时,大牛们给瞧瞧,线性打了个素数表,但是还是过不去,help!!!

Posted by sige at 2009-04-28 21:25:00 on Problem 2635 and last updated at 2009-04-28 21:25:27
#include<iostream>
using namespace std;
const int MAX=1000001;
int prime[MAX];
bool is[MAX];
int getprime()
{
	memset(is,true,sizeof(is));
	int i,j,k;
	k=0;
	prime[k++]=2;
	for(i=3;i<MAX;i++)
	{
		if(is[i])
		{
			prime[k++]=i;
		}
		for(j=0;j<k && prime[j]*i<MAX;j++)
		{
			is[prime[j]*i]=false;
			if(i%prime[j]==0)
				break;
		}
	}
	return k;
}
int main()
{
	int m=getprime();
	char str[102];
	int l,len,i,j,sum;
	while(scanf("%s%d",str,&l))
	{
		if(str[0]=='0' && l==0)break;
		len=strlen(str);
		for(i=0;prime[i]<l && i<m;i++)
		{
			sum=0;
			for(j=0;j<len;j++)
			{
				sum*=10;
				sum+=str[j]-'0';
				sum%=prime[i];
			}
			if(sum==0)
			{
				break;
			}
		}
		if(prime[i]>=l || i>=m)
		{
			printf("GOOD\n");
		}
		else
		{
			printf("BAD %d\n",prime[i]);
		}
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator