作者:舞
开关灯
先看题目
这道题首先要写一个函数,用来进行开关的操作。
然后用一个for循环的二级嵌套来进行开关的操作。
最后再控制逗号的输出,让最后一个数字不再输出逗号就好了。
建议:本题的逻辑稍复杂。建议画好流程图
代码:
#include<iostream>
using namespace std;
int a[50001]={1};
int X(int a){
return a==1?0:1;
}
int main()
{
int N,M;
cin>>N>>M;
int i,j;
for(i=1;i<=N;i++){
a[i]=0;
}
for(i=2;i<=M;i++){
for(j=i;j<=N;j+=i){
a[j]=X(a[j]);
}
}
int num=0;
for(int i=1;i<=N;i++){
if(a[i]==0){
num++;
}
}
int temp=0;
for(int i=1;i<=N;i++){
if(a[i]==0&&temp!=num-1){
cout<<i<<",";
temp++;
}
else if(a[i]==0){
cout<<i;
}
}
return 0;
}