第20行为什么要break
欧拉筛保证为线性的关键就在于这个break, 在欧拉筛中, 每个合数只会被弃最小的质因子筛一次, 如果当前的i是prime[j]的倍数关系, 那么当j变为j加1时,$ i \times prime[j+1]$就相当于是用prime[$j + 1$]筛出, 但是显然这个数应该被prime[j]筛, 不满足了要求, 也就不再是线性.
当前i=4, prime[j]为2,用$2 \times 4$更新8后, 如果不break, 那么就会用下一个质数3继续更新, 即用$3 \times 4$更新了12, 此时这个12是用3更新的, 但实际上12的最小质因子是2, 所以12应该被$2 \times 6$更新一次, 导致12被3更新的就是4是2的倍数, 所以一定要break.