知识点:

1.1埃氏筛法:暴力枚举打表 O(nloglogn)

1.2线性筛法:对于每个数x,遇到x%prime[i]==0的第一个i退出,使得每个合数都被它的最小质因子筛掉 O(n)

例1.1H-合成数poj3292:暴力的一题 筛数打标记O(nlogn)

例1.2求最小质数:平均每O(logn)会出现一个质数,于是暴力即可 O(sqrt(n)logn)

1.3 辗转相除法

gcd(a,b)=gcd(a-b,b)=gcd(b,a%b) 时间复杂度O(logn)

ab=gcd(a,b)*lcm(a,b)

二进制优化

 1 int gcd(int a,int b)
 2 {
 3     if(!a || !b)
 4       return a^b;
 5     int i=0,j=0;
 6     while(!(a&1))
 7       a>>=1,i++;
 8     while(!(b&1))
 9       b>>=1,j++;
10     while(a!=b)
11       {
12        if(a<b)
13          a^=b,b^=a,a^=b;
14        a-=b;
15        while(!(a&1))
16          a>>=1;
17       }
18     return a<<min(i,j);
19 }
gcd二进制优化

相关文章:

  • 2021-08-21
  • 2021-12-20
  • 2021-12-05
  • 2021-12-05
  • 2021-12-05
  • 2021-12-05
  • 2021-12-05
  • 2022-01-16
猜你喜欢
  • 2021-08-18
  • 2021-08-22
  • 2022-01-10
  • 2022-12-23
  • 2022-01-25
  • 2021-12-10
相关资源
相似解决方案