蓝桥杯康复训练 Day5 (欧拉筛求素数)

每次复习算法都要重新背一下欧拉筛也是坠了

希望是最后一次


欧拉筛求素数

用来素数打表,是目前能理解的最快的方法,加上minp也可以记录一个数的最小质因数

	static int primes[] = new int [N];
	static boolean st[] = new boolean [N]; // 标记是否为合数
	static int cnt = 0;
	// 记录最小质因数
	// static int minp[] = new int [N];  
	
	static void get_primes(int n) {
		for(int i = 2; i <= n; i++) {
			if(!st[i]) {
				primes[cnt++] = i;
				// minp[i] = i;
			}
			for(int j = 0; i * primes[j] <= n; j++) {
				int t = i * primes[j];
				st[t] = true;
				// minp[t] = primes[j];
				if(i % primes[j] == 0) {
					break;
				}
			}
		}
	}

你可能感兴趣的:(2022蓝桥杯,算法,java)