直接输完全平方数
by __Aaaaaaaa @ 2022-09-14 19:36:43
第一个人将灯全部关闭,第二个人将编号为 2 的**倍数**的灯打开,将编号为 3 的**倍数**的灯做相反处理
你每个人只判断了一次`if(j%c==0)`而j和c每次都会增加一。
| j |c |
| :----------: | :----------: |
| 1 | 2 |
| 2| 3 |
| 3 | 4 |
| 4| 5 |
显然j%c永远不可能等于0
by WZRYWZWY @ 2022-09-14 19:40:27
```cpp
#include<iostream>
using namespace std;
int main(){
int b,c;
c=2;
cin>>b;
int a[b+1];
for(int i=1;i<=b;i++){//从1开始
a[i]=0;
}
for(int j=1;j<=b;j++){
for(int i = c;i<=b;i+=c)//倍数
if(a[i]==0){
a[i]=1;
}else{
a[i]=0;
}c++;//应该移到for里面
}
for(int i=1;i<=b;i++){
if(a[i]==0){
cout<<i<<" ";
}
}
}
```
@[sjz520](/user/767417)
by WZRYWZWY @ 2022-09-14 19:52:41
@[WZRYWZWY](/user/704668) 谢谢
by Serendi_Pity @ 2022-09-14 20:04:34
```cpp
<<#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i*i<=n;i++) cout<<i*i<<" ";
return 0;
```
by Ehtan @ 2022-10-06 20:42:04