经验
- 注意 ++ 操作,需要检查,是否多了一个,或者少了一个
- 检查结果,是否明显有问题。
- 起始值是否相等。起始值、结束值。临界点。
- 每一个变量代表的含义
- 初始值手动设为 0 !
- 0、1、负数
质数 - 埃及筛
c++
#include <bits/stdc++.h>
using namespace std;
const int N=1e4;
int nums[N];
bool isPrime(int n) {
if (n<2) return false;
for (int i=2; i*i<=n; ++i) {
if (n%i==0) return false;
}
return true;
}
void setPrime(int n) {
for (int i=2; i<=n; ++i) nums[i]=1;
for (int i=2; i<=n; ++i) {
if (isPrime(i)) {
for (int j=i*i; j<=n; j+=i) {
nums[j]=false;
}
}
}
}
int main() {
setPrime(N);
int cnt=0;
for (int i=0; i<=N; ++i) {
if (nums[i]!=1) continue;
cnt++;
cout << i << "\t";
if (cnt%9==0) cout << endl;
}
return 0;
}