点亮灯泡问题

//deng pao

#include<stdio.h>

void main(){

    int i=1,j,a[65535]={0},n,b[65535]={0};

    scanf(“%d”,&n);

    for(i=1;i<=n;i++)

        b[i]=i;

    for(i=1;i<=n;i++)

        for(j=0;j<n;)

        {    

            j=i+j;

            a[j]++;

        }

    for(i=1;i<=n;i++)

        if(a[i]%2==1)

            printf(“%d”,b[i]);

}

输入100,结果是:1,4,9,16,25,36,49,64,81,100

其实可以发现亮着的灯是自然数的平方

点赞