1013. 数素数 (20) (数学 ZJU_PAT)

题目链接:http://www.patest.cn/contests/pat-b-practise/1013

 

 

令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。

输入格式:

输入在一行中给出M和N,其间以空格分隔。

输出格式:

输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。

输入样例:

5 27

输出样例:

11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103

 

代码如下:

 

 

#include 
#include 
const int maxn = 1000017;
int p[maxn], a[maxn];
void init()
{
	for(int i = 2; i*i <= maxn; i++)
	{
		if(!a[i])
		{
			for(int j = i; j*i <= maxn; j++)
			{
				a[j*i] = 1;
			}
		}
	}
}
int main()
{
	memset(a,0,sizeof(a));
	int n, m;
	int i;
	init();
	scanf("%d%d",&n,&m);
	int l = 1;
	for(i = 2; i <= maxn; i++)
	{
		if(!a[i])
		{
			p[l++] = i;
		}
	}
	int k = 0;
	for(i = n; i <= m; i++)
	{
		if(k == 0)
			printf("%d",p[i]);
		else
			printf(" %d",p[i]);
		k++;
		if(k == 10 && i != m)
		{
			printf("\n");
			k = 0;
		}
	}
	printf("\n");
	return 0;
}

 

 

 

 

 

 

你可能感兴趣的:(PAT,PAT,ZJU,数学)