您的位置:首页 > 其它

1013. 数素数 (20)

2018-03-20 08:44 239 查看
1013. 数素数 (20)

令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 <stdio.h>
#include <string.h>

int prime_judge(int a)
{
int i;
if((a % 2 == 0)&&(a!=2))
return 0;

for(i = 2;i*i <= a;i++){
if(a%i == 0)
return 0;
}
return 1;
}

int main(void)
{
int a,b;
int output[20000];
int i,j,k;
j = 0;
scanf("%d %d",&a,&b);
for(i=2;i<109000;i++)
{
if(prime_judge(i) == 1)
{
output[j] = i;
j++;
}
}
for(i=100000;i<109000;i++)
{
if(prime_judge(i) == 1)
{
output[j] = i;
j++;
}
}
k = 0;
for(i = a - 1;i < b;i++)
{
k = k+1;
if(k < 10 && i<b-1)
printf("%d ",output[i]);
else if(i == b-1)
printf("%d",output[i]);
else
printf("%d\n",output[i]);
if(k == 10)
k = 0;
}
}注:1)计算素数部分for循环用两次是因为在一个for循环内完成109000次运算会出现错误,具体原因尚未想通;
       2)素数的计算方式有待优化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: