main()
{
int m,k,temp;
int i,j,flag;
flag=0;
system("cls");
scanf("%d,%d",&m,&k);
temp=m+k;
for(i=m;i<=temp;i++)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0){flag=1;break;}
}
if(flag==0)printf(" %d",i);
else flag=0;
}
}
上面的错了呵呵,马上写个改进的
main()
{
int m,k,l,xx[200];//l用来记录素数的个数
int j,flag,enough;//flag标记时素数,enough标记所求素数已经满了
flag=0;l=0;enough=0;
system("cls");
scanf("%d,%d",&m,&k);
while(enough==0)
{
for(j=2;j<=m/2;j++)
{
if(m%j==0){flag=1;break;}
}
if(flag==0){xx[l]=m;l++;}
else flag=0;
if(l==k)enough=1;
m++;
}
for(j=0;j<l;j++)
{
printf(" %d ",xx[j]);
}
}
代码风格不好啊
将大于整数m且紧靠m的k个素数存入数组xx
void num(int m, int k, int xx[])
{int data=m+1;
int half;
int n=0;
int I;
while(1) ----------------------> 这里WHILE多余,不管怎么样都进入循环
{ half=data/2;
for(I=2;I<=half;I++) /*for循环用来判断一个数是不是素数,是就退出while循环*/
if(data%I==0)
break;
if(I>half) /*不管data是不是素数I进行拉I++,这个if语句用来接受一个数
{xx[n]=data; 是不是素数,如果I>half,那么就是*/
n++;}
if(n>=k)
break;
data++;
}
}