【题目描述】
有n盏灯,编号为1~n,分别由相应的n个开关控制。开始时全部开关朝上(朝上为开,灯亮),然后进行以下操作:编号凡是1的倍数的灯反方向拨一次开关;是2的倍数的灯再反方向拨一次开关;是3的倍数的灯又反方向拨一次开关,......,直到是n的倍数的灯又反方向拨一次开关。
【输入】
仅一行。一个整数n(1≤n≤100),代表灯的数量。
【输出】
有两行。第1行是熄灭状态的灯的数量;第2行是最后为熄灭状态的灯的编号(每个数据以4列的域宽显示)。
【样例输入】
100
【样例输出】
10
1 4 9 16 25 36 49 64 81 100
#include<stdio.h> int main() { int n,i,j,sum=0; scanf("%d",&n); int a[n+1]; for(i=0;i<n+1;i++) a[i]=0; for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(j%i==0) a[j]++; for(i=1;i<=n;i++) if(a[i]%2!=0) sum++; printf("%d\n",sum); for(i=1;i<=n;i++) if(a[i]%2!=0) printf("%4d",i); return 0; }
标签:int,样例,37,开关,倍数,编号,第六章,100 From: https://www.cnblogs.com/xrj1229/p/16882313.html