浅谈数论
$$OI中的数论知识$$
$$By;TYQ$$
gcd
\[gcd(i,j) = max \{ y | i \equiv 0 \; (mod y) , j \equiv 0 \; (mod y) \}
\]
关于求gcd:
-
暴力
时间复杂度O(N)级别
-
欧几里得算法
利用定理\(gcd(i,j) = gcd(i,j-i)\;(i<j)\)
这是显而易见的...
然后我们也可以知道\(gcd(i,j) = gcd(j,i%j)\;(i<j)\)
时间复杂度是log级的 , 是一种极为优秀的算法
//demo_gcd int gcd(int x , int y){ if(y==0)return x ; return gcd(y , x%y) ; }