码迷,mamicode.com
首页 > 其他好文 > 详细

nyoj1167 阅读理解 高效素数打表

时间:2015-04-28 18:33:09      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:nyoj1167   nyoj 1167   

这个题要注意啦  1 在这个题中也是素数。 唉  害我苦苦找了这么久 后来人注意就行了

#include <stdio.h>
#define num 100010
long long  mark[num+10]={0},visit[num+10]={1},t=0,rec[num+10];
int main()
{
	for(long long i=2;i<=num;i++)
	{
		if(!visit[i])
		mark[t++]=i;
		for(long long  j=0;j<t&&i*mark[j]<=num;j++)
		{
			visit[i*mark[j]]=1;
			if(i%mark[j]==0)
			break;
		}
	}
	long long  sum=0;
	for(long long  i=0;i<=num;i++)
	{
		if(!visit[i])
		sum++;
		rec[i]=sum;
	}
	long long  n,m,t=1,temp;
	while(~scanf("%lld %lld",&m,&n))
	{
		printf("Case %%%lld:%lld\n",t++,rec[n]-rec[m-1]);
	}
	return 0;
}
#include <stdio.h>
#include <math.h>
#define num 100005
int main()
{
	int flag[num],rec[num],sum=0,cnt=0,m,n;
	flag[0]=1;
	for(int i=2;i<=num/2;i++)
	if(!flag[i]&&i<=sqrt(num))
	for(int j=i*i;j<=num;j+=i)
	flag[j]=1;
	for(int i=0;i<=num-5;i++){
		if(!flag[i])
		sum++;
		rec[i]=sum;
	}
	while(scanf("%d %d",&m,&n)!=EOF)
	printf("Case %%%d:%d\n", ++cnt,rec[n]-rec[m-1]);
}



nyoj1167 阅读理解 高效素数打表

标签:nyoj1167   nyoj 1167   

原文地址:http://blog.csdn.net/su20145104009/article/details/45338031

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!