開燈問題

開燈問題
時間限制:3000 ms  |  內存限制:65535 KB
難度:1
描述

有n盞燈,編號爲1~n,第1個人把所有燈打開,第2個人按下所有編號爲2 的倍數的開關(這些燈將被關掉),第3 個人按下所有編號爲3的倍數的開關(其中關掉的燈將被打開,開着的燈將被關閉),依此類推。一共有k個人,問最後有哪些燈開着?輸入:n和k,輸出開着的燈編號。k≤n≤1000

輸入
輸入一組數據:n和k
輸出
輸出開着的燈編號
樣例輸入
7 3
樣例輸出
1 5 6 7
#include <stdio.h>

#define M 100

int main()
{
	int a[M][2];
	int n, i, k, j;

	scanf("%d%d", &n, &k);
	getchar();

	for(i = 1; i <= n; i++)
	{
		a[i][0] = i;
		a[i][1] = 1;
	}

	for(i = 2; i <= n; i++)
		for(j = 2; j <= k; j++ )
			if( a[i][0] % j == 0)
			{
				if(a[i][1] == 1)
					a[i][1] = 0;
				else if(a[i][1] == 0)
					a[i][1] = 1;
			}
	
	for(i = 1; i <= n; i++)
	{
		if(a[i][1] == 1)
			printf("%d ", a[i][0]);
	}
	printf("\n");

	return 0;
}



發佈了39 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章