程序卡死,为什么?求助!

B2092 开关灯

@[Sci_8633](/user/1081521) 当 $i=1$ 时,$j$ 每次乘上 $i$ 都是 `1`,而又符合 `j<=n` 的条件,所以程序死循环。
by zhouzihang1 @ 2024-01-05 19:10:01


int j=i;j<=n;j*=i 这一层卡死了
by LoveYou3000 @ 2024-01-05 19:26:30


```cpp #include<bits/stdc++.h> using namespace std; int n; bool flag[5005]={0}; int main(){ cin>>n; for(int i=1;i<=n;++i) for(int j=i;j<=n;j+=i){ if(flag[j]==0) flag[j]=1; else if(flag[j]==1) flag[j]=0; } for(int i=1;i<=n;++i) if(flag[i]==1) cout<<i<<' '; return 0; } ``` 不用发了,我早就过了。 ![AC](https://www.luogu.com.cn/record/142002117)
by Sci_8633 @ 2024-01-05 20:24:51


|