如上图片了,我求的是3到150,你用m1和m2代入就可以了
数据范围不大的话可以枚举吧。。。。
int i,j,k,n,m1,m2,flag;
scanf(“%d",&n);
for (i=1;i<=n;i++)
{
scanf("%d %d",&m1,&m2);
for (j=m1;j<=m2;j++);
{
flag=0;(当做旗帜,是质数为0,不是质数为1)
for (k=2;k<=sqrt(j);k++)
if (j==(j/k)*k)
flag=1;
if (flag==0)
printf("%d ",j);
}
printf("\n");
}
完整代码。。。。。有什么不好的地方告诉我哦,呵呵。。。
#include
#include
int main()
{
int i,j,k,n,m1,m2,flag;
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%d %d",&m1,&m2);
for (j=m1;j<=m2;j++)
{
if (j==1)
continue;
flag=0;
for (k=2;k<=sqrt(j);k++)
if (j==(j/k)*k)
flag=1;
if (flag==0)
printf("%d ",j);
}
printf("\n");
}
return 0;
}
#include
#include
int main(int argc, char *argv[])
{
int i,j,flag,m1,m2,t; //i循环变量
scanf("%d",&t);
while(t--)
{
scanf("%d %d",&m1,&m2);
for( i = m1; i <= m2; i++)
{
flag = 0; //flag用于标识是否为素数,是则为0,不是则为1
for(j = 2 ; j < sqrt(i) ; j++)
if(i%j == 0)
{
flag = 1;
break;
}
if(flag == 0)
printf("%d ",i);
}
printf("\n");
}
return 0;
}
#include
#define max 50
bool isprime(int a)
{
int i;
for(i=2;i<=sqrt(a);i++)
if(a%i==0)
return false;
return true;
}
void main()
{
int n,i,j;
int a[max],b[max],c[max];
scanf("%d",&n);
for(i=0;i
scanf("%d %d",&a[i],&b[i]);
}
for(i=0;i
for(j=a[i];j<=b[i];j++)
if(isprime(j))
printf("%d ",j);
printf("\n");
}
}
调试已通过