@[凉了的凉师傅](/user/546909) 这题不应该加一点数论吗 详见题解第一篇
by HarryKane @ 2022-07-17 23:46:09
~~我是绝对不会告诉你们,这题我暴力80分的~~
by ShouZheng_Observer @ 2022-07-18 06:43:15
其实不难
换个思路好好想一下
//灯的开关取决于它编号的因数个数
//当因数个数为奇数时,灯是亮着的
//反之,当因数个数为偶数时,灯是关着的
//任何一个数的因数都有1和自己本身(除1外,1本身就是开着的)
//所以只要一个数N,还有因子i的话,那也会有因子N/i
//所以它们是成对出现的,常规情况下一个数因子总为偶数,灯就是关着的
//有没有特殊情况?当然有不然也不会有这题了
//其实我们发现,当N/i==i时,因子i与N/i只计算一次 此时灯泡因数数量就为奇数!灯就是亮着的
//转换一下也就是i*i=N
//发现没有?如果我们想要第N个灯泡开着的话,就要保证N是完全平方数
直接输出1到N的所有完全平方数
for(int i=1;i<=sqrt(n);i++)
{
cout<<i*i<<" ";
}
by skywalker1203 @ 2022-07-22 19:32:00
```cpp
#include<cstdio>
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i*i<=n;i++){
printf("%d ",i*i);
}
return 0;
}
```
by for_i_in_range65 @ 2022-09-19 19:57:04
这样就行了:
```c
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
for(int i = 1; i <= n; i ++)
if(i * i <= n)
cout << i * i << " ";
else
break;
return 0;
}
```
by _Glassy_Sky_ @ 2022-10-22 22:35:22