有n盞燈,編號爲1~n
。第1我的把全部燈打開,第2我的按下全部比編號爲2的倍數的開關(這些燈將被關掉),第3我的按下全部編號爲3的倍數的開關(其中關掉的燈江北打開,開着的燈將被關閉),以此類推,一共有k我的,問最後有哪些等開着?輸入n
和k
,輸出開着的燈的編號。k≤n≤1000
。算法
樣例輸入:數組
7 3
樣例輸出:code
1 5 6 7
#include<stdio.h> #include<string.h> #define maxn 1010 int a[maxn]; int main() { int n,k,first=1; memset(a,0,sizeof(a)); //清零數組 scanf("%d%d",&n,&k); for(int i = 1;i <= k;i++) for(int j = 1;j <= n;j++) if(j % i == 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; }