Skip to content

经验

  1. 注意 ++ 操作,需要检查,是否多了一个,或者少了一个
  2. 检查结果,是否明显有问题。
  3. 起始值是否相等。起始值、结束值。临界点。
  4. 每一个变量代表的含义
  5. 初始值手动设为 0 !
  6. 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;
}

求因数、公倍数

取模处理

记录学习,分享技术