求助!!!球球了

P1876 开灯

@[凉了的凉师傅](/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


|