有n盏灯, 编号为1~n, 第一个人把所有灯打开,第二个人按下所有编号为2的倍数的灯, 第三个人按下所有编号为3的倍数的灯,(关掉的被打开, 开着的关掉),以此类推,一共有K个人,问最后有几盏灯开着?并输出开着的灯的编号 看k<=n,=100;
样例输入 :7 3
样例输出 :1,5,6,7
#include<stdio.h>
#include<string,h>
#define maxn 1010
int main a[maxn];// 定义在外部的数组 ,比较与内部的数组有何不同
int main (){
int n,k,first=1;
memset(a,1,sizeof(a));
for (int i=1;i<=k;i++){
for (int j=1;j<=n;j++){
if (i%j==0) a[j]=!a[j];
}
}
for (int i=1;i<=n;i++){
if (a[i])
{
if (first) first=0;else printf(" ");printf("%d",i);
}
printf("\n");
}return 0;
}