题目描述
判断[n,m]之间有多少个素数(包含n和m),并输出这些素数。 ( 1 <= n < m <= 1000 )
输入要求
输入两个正整数n和m。
输出要求
输出两行信息,第一行是 n,m 之间素数个数,第二行输出所有素数。素数之间用空格分开。
输入样例
1 10
输出样例
4
2 3 5 7
提示:最后一个素数的后面直接换行,不需要再加空格。
代码如下(示例):
#include<stdio.h>
int box(int n)
{
int i;
for(i=2;i<n;i++)
if(n%i==0)
return 0;
return 1;
}
int main()
{
int n,m,i,j=0;
int sum=0;
int a[1000];
scanf("%d%d",&n,&m);
if(n==1)
n=2;
for(i=n;i<=m;i++)
if(box(i)//判断素数
{
sum++;
a[j]=i;
j++;
}
printf("%d\n",sum);//素数个数
for(j=0;j<sum;j++)
if(j==sum-1)
{
printf("%d\n",a[j]);
}else{
printf("%d ",a[j]);
}
return 0;
}