【题目描述】
输出x~y之间所有的素数。
【输入说明】
输入只有一行,包括2个整数,表示x和y
【输出说明】
输出若包含多个素数,其间用半角空格间隔。每5个一行输出。若无素数,则输出“无”。
【输入样例】
3 20
【输出样例】
3 5 7 11 13
17 19
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,i,j,sum,n=0;
scanf("%d%d",&a,&b);
for(i=a;i<=b;i++)
{
sum=0;
for(j=1;j<=i;j++)
{
if(i%j==0)
sum++;
}
if(sum==2)
{
printf("%d ",i);
n++;
if(n%5==0)
printf("\n");
}
}
if(n==0)
printf("无");
return 0;
}
改进:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,y,i,j,count=0;
scanf("%d%d",&x,&y);
for(i=x;i<=y;i++)
{
for(j=2;j<=sqrt(i);j++)
if(i%j==0)
break;
if(j>sqrt(i))
{
printf("%d ",i);
if(++count%5==0)
printf("\n");
}
}
if(count==0)
printf("无");
return 0;
}