零基础学C/C++165——输出素数
题目描述
编写一个判断素数的函数,主函数中利用这个函数,打印出n与m之间的所有素数。
输入
多组测试数据,每组输入2个整数n和m,其中1 < n <= m <= 1000
输出
在一行输出n和m之间(包含n和m)的所有素数,中间用空格隔开,最后一个数后面没有空格。
样例输入 Copy
2 14
样例输出 Copy
2 3 5 7 11 13
思路:遍历n和m之间的数,让每一个数都去依次除以大于等于2小于该数的值,如果能整除,则不是素数。
2要拿出来单独考虑
代码如下
#include<stdio.h>
void f(int m,int n);
int main()
{
int m,n;
while(scanf("%d%d",&m,&n)!=EOF)
{
f(m,n);
}
return 0;
}
void f(int m,int n)
{
int i,flag,j=0;
int a[1005];
for(i=m;i<=n;i++)
{
flag=0;
if(i==2)//2要拿出来单独考虑
{
a[j]=i;
j++;
}
else
{
for(int t=2;t<i;t++)
{
if(i%t==0)
{
flag=1;
break;
}
}
if(flag==0)
{
a[j]=i;
j++;
}
}
}
for(int k=0;k<j-1;k++)
{
printf("%d ",a[k]);
}
printf("%d\n",a[j-1]);
}