
/****************************************************************************************
題目鏈接:
http://acm.nyist.net/JudgeOnline/problem.php?pid=77
思 路:
首先是輸入2個數據,然後定義一個數組,介於燈只有2種狀態,
所以就定義成bool類型,然後初始化為0,代表燈起初全部是關閉狀態。
接著是2個循環,外面的循環代表從編號為1的人開始,直到結束。
裡面的循環代表從編號為1的燈進行操作,把符合要求的燈的狀態改變為和原來相反的狀態即可。
最後判斷哪些燈是開的,將它的編號輸出。
由於最後的輸出中,除了第一個輸出的前面沒有空格,其它的結果前面都有空格,
所以就把第一個就單獨考慮。
****************************************************************************************/
#include
#include
#include
using namespace std;
int main(void)
{
int n,k;
while(cin>>n>>k)
{
bool *lamp = (bool *)malloc((n+2)*sizeof(bool));
memset(lamp,0,(n+2)*sizeof(lamp));
for(int i=1; i<=k; i++)//人數遍歷
for(int j=1; j<=n; j++)//燈數遍歷
if(j % i == 0)
* (lamp+j) = !*(lamp+j);
cout<<1;
for(int j=2; j<=n; j++)
if(*(lamp+j) == 1)
cout<<" "<