341
社区成员
发帖
与我相关
我的任务
分享
思路:用一个数组记录每个位点的状态,然后通过for循环改变,最后输出结果
#include <iostream>
using namespace std;
int n;
const int N = 5001;
int q[N] = { 0 };
int main()
{
cin >> n;
for (int i = 2; i <= n; i++)
{
for (int j = 1; j * i <= n; j++)
{
if (q[j * i] == 0) q[j * i] = 1;
else q[j * i] = 0;
}
}
for (int i = 1; i <= n; i++)
{
if (q[i] == 0) cout << i << " ";
}
return 0;
}