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)素数的计算方式有待优化。
令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)素数的计算方式有待优化。
相关文章推荐
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- PAT 1013. 数素数 (20)
- PAT 乙级练习题1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013_数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 浙江大学PAT上机题解析之1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- 1013. 数素数 (20)
- PAT 1013. 数素数 (20)
- 1013. 数素数 (20)