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

WA得实在没招了,特向大牛们求教!!!(付代码)

Posted by Chenqiandong at 2010-02-25 12:34:26 on Problem 3511
#include <stdio.h>
#include <memory.h>

int m,n,total,proper;
bool isnotprime[1000005];
int primelist[100000];
void prime()
{
    memset(isnotprime,0,sizeof(isnotprime));
	int num;
	__int64 i,j;
	isnotprime[0] = isnotprime[1] = 1;
	num = 0;
	for(i = 2;i <= 1000000;i++)
	{
		if(!isnotprime[i])
		{
			primelist[num++] = i;
		    for(j = i * i;j <= 1000000;j += i)
				isnotprime[j] = 1;
		}
	}
	primelist[num] = 99999999;//为了work()中能break;
}
void work()
{
    int i,j;
	total = proper = 0;
	for(i = 0;;i++)
		if(primelist[i] >= m) break;
	if(primelist[i] == 2) proper = 1;//2为特例
	for(j = i;primelist[j] <= n;j++)
	{
	    if((primelist[j] - 1) % 4 == 0) proper++;
	}
	total = j - i;
}
int main()
{
	int x,y;
	prime();
	while(1)
	{
	    scanf("%d%d",&m,&n);
		if(m == -1 && n == -1) break;
		x = m;
		y = n;
		if(m < 0) m = 0;
		if(n < 0) n = 0;
		work();
		printf("%d %d %d %d\n",x,y,total,proper);
	}
    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