Sci_8633 @ 2024-01-05 19:04:53
#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[i]==0) flag[i]=1;
else if(flag[i]==1) flag[i]=0;
}
for(int i=1;i<=n;++i)
if(flag[i]==1)
cout<<i<<' ';
return 0;
}
by zhouzihang1 @ 2024-01-05 19:10:01
@Sci_8633 当 1
,而又符合 j<=n
的条件,所以程序死循环。
by LoveYou3000 @ 2024-01-05 19:26:30
int j=i;j<=n;j*=i
这一层卡死了
by Sci_8633 @ 2024-01-05 20:24:51
#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;
}
不用发了,我早就过了。