<span style="font-size:14px;">#include <stdio.h>
#include <string.h>
#define MAXN 1000+10
int a[MAXN];
int main()
{
int n,k,i,j,first=1;
memset(a,0,sizeof(a));
scanf("%d%d",&n,&k);
for(i=1;i<=k;i++)
for(j=1;j<=n;j++)
if(j%i==0)a[j]=!a[j];
for(j=1;j<=n;j++)
{
if(a[j])
{
if(first)
first=0;
else
printf(" ");
printf("%d",j);
}
}
printf("\n");
return 0;
}</span>
memset(a,0,sizeof(a))的作用是把数组a清零,在string.h中定义。虽然用for循环能完成相同的任务,但是用memset又方便又快捷
为了避免输出多余空格,设置一个标志变量first,可以表示当前要输出的变量是否为第一个。第一个变量前不应有空格。