100個のライトの問題(C言語実装)

942 ワード

100個のランプがあり、1~100から番号をつけ、最初はすべてのランプがオフになっていたが、初めて、すべての番号が1の倍数のランプのスイッチ状態を1回変更した.2回目は、すべての番号が2の倍数のランプのスイッチ状態を1回変更します.3回目は、すべての番号が3の倍数のランプのスイッチ状態を1回変更します.このようにして、すべての番号が100の倍数のランプのスイッチ状態を一度変更します.問、この時点灯しているすべてのランプの番号は?
//100個のランプがあり、1~100から番号をつけ、最初はすべてのランプがオフになっていた//初めて、すべての番号が1の倍数のランプのスイッチ状態を1回変更した.//2回目は、すべての番号が2の倍数のランプのスイッチ状態を1回変更します.//3回目は、すべての番号が3の倍数のランプのスイッチ状態を1回変更します.//このようにして、すべての番号が100倍のランプのスイッチ状態を一度変えるまで押します.質問ですが、このとき点灯しているすべてのランプの番号を教えてください.
#include
#include
#include



int main(){  
    
    int arr[101]={0};
    int i,j;
    
    for(i=1;i<101;i++){
    	for(j=1;j<101;j++){
    		if(j%i==0){
    			arr[j]= (arr[j]==0?1:0);
			}
		}
	}
	for(i=1;i<101;i++){
		if(arr[i]==1){
			printf("%d ",i);
		}
	}
    return 0;  
    system("pause");  
      
}

結果は
1 4 9 16 25 36 49 64 81 100