diff --git a/notes/Leetcode 题解.md b/notes/Leetcode 题解.md index f6aa2f5a..84bddea7 100644 --- a/notes/Leetcode 题解.md +++ b/notes/Leetcode 题解.md @@ -3364,11 +3364,11 @@ public int minSteps(int n) { ### 素数 -**素数分解** +(一)素数分解 每一个数都可以分解成素数的乘积,例如 84 = 22 \* 31 \* 50 \* 71 \* 110 \* 130 \* 170 \* … -**整除** +(二)整除 令 x = 2m0 \* 3m1 \* 5m2 \* 7m3 \* 11m4 \* … @@ -3376,7 +3376,7 @@ public int minSteps(int n) { 如果 x 整除 y(y mod x == 0),则对于所有 i,mi <= ni。 -**最大公约数最小公倍数** +(三)最大公约数最小公倍数 x 和 y 的最大公约数为:gcd(x,y) = 2min(m0,n0) \* 3min(m1,n1) \* 5min(m2,n2) \* ... @@ -3391,18 +3391,18 @@ x 和 y 的最小公倍数为:lcm(x,y) = 2max(m0,n0) \* 3max( ```java public int countPrimes(int n) { boolean[] notPrimes = new boolean[n + 1]; - int cnt = 0; - for (int i = 2; i < n; i++){ + int count = 0; + for (int i = 2; i < n; i++) { if (notPrimes[i]) { continue; } - cnt++; + count++; // 从 i * i 开始,因为如果 k < i,那么 k * i 在之前就已经被去除过了 - for (long j = (long) i * i; j < n; j += i){ + for (long j = (long) (i) * i; j < n; j += i) { notPrimes[(int) j] = true; } } - return cnt; + return count; } ```